Pour discuter de l'assembleur
cha0s
Messages : 681 Inscription : sam. 05/mars/2005 16:09
Message
par cha0s » dim. 17/déc./2006 16:36
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.
Dr. Dri
Messages : 2527 Inscription : ven. 23/janv./2004 18:10
Message
par Dr. Dri » dim. 17/déc./2006 16:58
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
flaith
Messages : 1487 Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :
Message
par flaith » dim. 17/déc./2006 16:58
salut,
avec :
ca marche mieux
Dr. Dri
Messages : 2527 Inscription : ven. 23/janv./2004 18:10
Message
par Dr. Dri » dim. 17/déc./2006 17:05
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
flaith
Messages : 1487 Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :
Message
par flaith » dim. 17/déc./2006 17:17
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
Dr. Dri
Messages : 2527 Inscription : ven. 23/janv./2004 18:10
Message
par Dr. Dri » dim. 17/déc./2006 17:22
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
cha0s
Messages : 681 Inscription : sam. 05/mars/2005 16:09
Message
par cha0s » dim. 17/déc./2006 17:24
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
flaith
Messages : 1487 Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :
Message
par flaith » dim. 17/déc./2006 17:39
ok, t'as raison