Aide A Propos Des Registre

Signaler
Messages postés
16
Date d'inscription
mardi 21 février 2006
Statut
Membre
Dernière intervention
8 février 2010
-
Messages postés
202
Date d'inscription
mardi 17 mai 2005
Statut
Membre
Dernière intervention
29 septembre 2008
-
Salut tous le monde
je veux savoir ça veut dire koi les registres entre crochets [eax] et quelle la difference entre eax et [eax] et aussi je veux savoir comment peut on incrementer un registre d'une valeur n.
merci d'avance.

1 réponse

Messages postés
202
Date d'inscription
mardi 17 mai 2005
Statut
Membre
Dernière intervention
29 septembre 2008
2
Bonjour swadfish,


Celà dépend de l'assembleur utilisé. Dans le cas de Nasm (et quelques autres assembleurs) tu as:

mov ecx,eax   signifie charge le registre ecx avec la valeur de eax
mov ecx,[eax] signifie charge ecx avec le contenu de la mémoire dont l'adresse est dans eax.
Dans ce deuxième cas si le contenu de eax est une adresse inaccessible par le process (mode protégé) tu auras une erreur du genre "mémoire ne peut être read"


D'une façon analogue


mov eax,0x12345678 veut dire met la valeur 0x12345678 dans eax
et
mov eax,[0x00400000] veut dire met la valeur contenue à l'adresse 0x00400000 dans eax.

Pour incrémenter un registre eax d'une valeur n fixée tu fais
add eax,5   (si n=5)
Si ecx contient la valeur n tu peut faire add eax,ecx (ajoute à eax le contenu de ecx)

A+