Dword ptr / word ptr chez nasm [Résolu]

Signaler
Messages postés
28
Date d'inscription
samedi 1 février 2003
Statut
Membre
Dernière intervention
27 septembre 2007
-
Micro_and_Macro
Messages postés
43
Date d'inscription
dimanche 26 mars 2006
Statut
Membre
Dernière intervention
1 août 2009
-
Bonjour à tous, je code sous nasm et voici mon problème :

Quand j'écris une instruction du type :
mov eax, dword ptr [ebx]
OU
cmp word ptr [ebx], 0h

j'obtiens cett erreur : comma or end of line expected.

Voilà je suppose que "dword ptr" n'est pas compris par nasm mais je ne sais pas par quoi le remplacer.
Merci de votre aide...

3 réponses

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



Effectivement la syntaxe de Nasm est légèrement différente de celle de Masm.

Masm considère les contenus comme des valeurs de variables. L'instruction

mov eax,dword ptr[ebx] signifie:



lire le contenu du registre ebx

considérer cette valeur comme un pointeur et donc constitue une adresse

lire le dword à l'adresse en question et le mettre dans eax.



Avec Nasm tu n'as qu'à écrire

mov eax,[ebx]



En règle générale avec Nasm tu doit oublier les ptr, les offsets et autres truc.

Pour Nasm, adresse est une adresse, le contenu situé à cette adresse est [adresse].

Il ne faut pas oublier les crochets.



Lecture d'une adresse d'une variable

mov eax,offset variable (MASM)

mov eax,variable (NASM)



Lecture du contenu d'une variable

mov eax,variable (MASM)

mov eax,[variable] (NASM)



Les 4 octets situés à partir de l'adresse variable sont accessibles individuellement de la façon suivante:

mov al,[variable] octet de poids faible

mov al,[variable+1]

mov al,[variable+2]

mov al,[variable+3] octet de poids fort




En résumé tu pourra transcrire

mov eax, dword ptr [ebx] par mov eax,[ebx]

et

cmp word ptr [ebx], 0h par cmp word [ebx],0 ou cmp [ebx],word 0
Messages postés
28
Date d'inscription
samedi 1 février 2003
Statut
Membre
Dernière intervention
27 septembre 2007

Merci beaucoup pour cet explication plus que complète !!!

Tu ne t'appelle pas Nasman pour rien... ;-)
Messages postés
43
Date d'inscription
dimanche 26 mars 2006
Statut
Membre
Dernière intervention
1 août 2009

Instructif, merci.