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

Messages postés
28
Date d'inscription
samedi 1 février 2003
Statut
Membre
Dernière intervention
27 septembre 2007
- - Dernière réponse : 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...
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
202
Date d'inscription
mardi 17 mai 2005
Statut
Membre
Dernière intervention
29 septembre 2008
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 188 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Nasman
Messages postés
28
Date d'inscription
samedi 1 février 2003
Statut
Membre
Dernière intervention
27 septembre 2007
0
Merci
Merci beaucoup pour cet explication plus que complète !!!

Tu ne t'appelle pas Nasman pour rien... ;-)
Commenter la réponse de morganitos
Messages postés
43
Date d'inscription
dimanche 26 mars 2006
Statut
Membre
Dernière intervention
1 août 2009
0
Merci
Instructif, merci.

 
Commenter la réponse de Micro_and_Macro