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

morganitos 28 Messages postés samedi 1 février 2003Date d'inscription 27 septembre 2007 Dernière intervention - 2 janv. 2006 à 14:12 - Dernière réponse : Micro_and_Macro 43 Messages postés dimanche 26 mars 2006Date d'inscription 1 août 2009 Dernière intervention
- 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 

Votre réponse

3 réponses

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

Merci cs_Nasman 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 75 internautes ce mois-ci

Commenter la réponse de cs_Nasman
morganitos 28 Messages postés samedi 1 février 2003Date d'inscription 27 septembre 2007 Dernière intervention - 3 janv. 2006 à 19:10
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
Micro_and_Macro 43 Messages postés dimanche 26 mars 2006Date d'inscription 1 août 2009 Dernière intervention - 9 avril 2010 à 22:25
0
Merci
Instructif, merci.

 
Commenter la réponse de Micro_and_Macro

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.