Page 1 sur 1

petit problem avec MOV et un pointeur

Publié : dim. 17/déc./2006 16:36
par cha0s
wala mon code

Code : Tout sélectionner

*Get = AllocateMemory(1)
! MOV   byte [p_Get], 10
Debug *Get
Debug PeekB(*Get)
J'ai cherché partout mais je n'arrive pas a affecter 10 a ladresse *Get.

Publié : dim. 17/déc./2006 16:58
par Dr. Dri

Code : Tout sélectionner

*Get = AllocateMemory(1)
!MOV eax, dword [p_Get] ;récupère l'adresse du pointeur
!MOV byte [eax], 10     ;pointe
Debug *Get
Debug PeekB(*Get)
Dri ;)

Publié : dim. 17/déc./2006 16:58
par flaith
salut,

avec :

Code : Tout sélectionner

debug peekb(@*Get)
ca marche mieux ;)

Publié : dim. 17/déc./2006 17:05
par Dr. Dri
non non non parce qu'en faisant ca on modifie l'adresse pointée et on se retrouve soit avec une erreur de segmentation (invalid memory access) soit avec une valeur fausse (pointe pas au bon endroit mais autorisé)

Code : Tout sélectionner

*Get.Byte = AllocateMemory(1)
*Get\b = 10            ;met 10 à l'adresse pointée
!MOV byte [p_Get], 255 ;change l'adresse au lieu de mettre 255
Debug *Get\b           ;afficherai 255 si le code était bon
Dri

Publié : dim. 17/déc./2006 17:17
par flaith
ah ??? et ca :

Code : Tout sélectionner

*Get.b = AllocateMemory(SizeOf(BYTE))
*Get = 10               ;met 10 à l'adresse pointée
!MOV byte [p_Get], 255  ;change l'adresse au lieu de mettre 255
Debug *Get              ;affiche 255 si le code était bon

Publié : dim. 17/déc./2006 17:22
par Dr. Dri
là tu ne pointe pas tu affiches l'adresse, je te rappelle que *Get est censé contenir une adresse, à quoi sert l'allocatememory sinon ?

Code : Tout sélectionner

*Get.b = AllocateMemory(SizeOf(BYTE))
Debug *Get              ;affiche l'adresse pointée
!MOV byte [p_Get], 255  ;l'opération incomplète ici
Debug *Get              ;affiche l'adresse pointée
Dri

Publié : dim. 17/déc./2006 17:24
par cha0s
Dr. Dri a écrit :

Code : Tout sélectionner

*Get = AllocateMemory(1)
!MOV eax, dword [p_Get] ;récupère l'adresse du pointeur
!MOV byte [eax], 10     ;pointe
Debug *Get
Debug PeekB(*Get)
Dri ;)
merci :)

Publié : dim. 17/déc./2006 17:39
par flaith
ok, t'as raison :)