MOV [REGISTRE] , POINTEUR

Pour discuter de l'assembleur
G-Rom
Messages : 3626
Inscription : dim. 10/janv./2010 5:29

MOV [REGISTRE] , POINTEUR

Message par G-Rom »

Toujours moi a la découverte de l'ASM.
c'est plus clair dans ma tête , mais j'ai quelques difficulté de syntaxe.

J'ai un pointeur pb nommé *M
je veut le passer dans le registre EAX

MOV EAX , [adresse mémoire]

je remplis comment le champ adresse mémoire ? sachant qu'elle est contenu dans *M ?
Dois je passer par un registre intermédiaire ?
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: MOV [REGISTRE] , POINTEUR

Message par Backup »

ya pas une histoire de 'P.variable' pour les pointeurs ?

Code : Tout sélectionner

p.v_toto


ou

Code : Tout sélectionner

P_toto
?
G-Rom
Messages : 3626
Inscription : dim. 10/janv./2010 5:29

Re: MOV [REGISTRE] , POINTEUR

Message par G-Rom »

Le problème dans cette exemple , c'est que le contenu de la variable n'est pas modifiée.
il incrémente le pointeur , pas le contenu...

Code : Tout sélectionner

*M = AllocateMemory(4)
PokeI(*M,255)

Debug "ADRESSE AVANT INC EAX : " + Str(*M)

!MOV EAX,[p_M]
!INC EAX
!MOV [p_M],EAX

Debug "ADRESSE APRES INC EAX : " + Str(*M)
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: MOV [REGISTRE] , POINTEUR

Message par djes »

Pour modifier le contenu pointé (active l'asm)

Code : Tout sélectionner

CallDebugger
*M.integer = AllocateMemory(4)
*M\i = 255

Debug "ADRESSE AVANT INC EAX : " + Str(*M\i)

MOV EAX,[p_M]
INC DWORD [EAX]
MOV EBX,DWORD [EAX]

Debug "ADRESSE APRES INC EAX : " + Str(*M\i)
G-Rom
Messages : 3626
Inscription : dim. 10/janv./2010 5:29

Re: MOV [REGISTRE] , POINTEUR

Message par G-Rom »

Merci Djes
elle sert à rien cette ligne? :

Code : Tout sélectionner

MOV EBX,DWORD [EAX]
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: MOV [REGISTRE] , POINTEUR

Message par djes »

Non, lol, j'ai oublié de l'enlever :)
Répondre