Aide A Propos Des Registre

swadfish Messages postés 16 Date d'inscription mardi 21 février 2006 Statut Membre Dernière intervention 8 février 2010 - 15 déc. 2006 à 13:22
cs_Nasman Messages postés 202 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 29 septembre 2008 - 15 déc. 2006 à 13:55
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

cs_Nasman Messages postés 202 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 29 septembre 2008 3
15 déc. 2006 à 13:55
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+
0
Rejoignez-nous