Dword ptr / word ptr chez nasm

Résolu
morganitos Messages postés 28 Date d'inscription samedi 1 février 2003 Statut Membre Dernière intervention 27 septembre 2007 - 2 janv. 2006 à 14:12
Micro_and_Macro Messages postés 43 Date d'inscription dimanche 26 mars 2006 Statut Membre Dernière intervention 1 août 2009 - 9 avril 2010 à 22:25
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...
A voir également:

3 réponses

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