IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

x86 32-bits / 64-bits Assembleur Discussion :

Comparaison cmp : problème de taille d'opérande


Sujet :

x86 32-bits / 64-bits Assembleur

  1. #1
    Membre du Club Avatar de donkeyquote
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 195
    Points : 52
    Points
    52
    Par défaut Comparaison cmp : problème de taille d'opérande
    Bonjour,

    Quelqu'un peut me dire pourquoi le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    ;declaring variables
    segment .data
     
    ;test comparison
    tester dd 0h
     
    ;entry point for main function
    global main
    ;start assembly program
    section .text
     
    ;coding the _main symbol
    main:
     
    cmp [tester], 0h
     
    ret
    me donne l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    comparisons.asm:15: error: operation size not specified
    ??

    Merci d'avance

  2. #2
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 937
    Points : 59 416
    Points
    59 416
    Billets dans le blog
    2
    Par défaut
    Bonjour !

    L'instruction signifie "comparer avec 0 la variable mémoire dont l'adresse est contenue dans la variable tester". L'assembleur n'a aucun moyen de connaître la taille de l'opérande à comparer avec 0 : est-ce un byte, un word, un dword, ... ?
    Pour donner cette indication à l'assembleur, voici un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cmp dword ptr [tester], 0h
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  3. #3
    Membre du Club Avatar de donkeyquote
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 195
    Points : 52
    Points
    52
    Par défaut
    J'avais deja essaye et j'ai ressaye, mais je trouve une autre erreur qui semble etre liee a la syntaxe ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    comparisons.asm:16: error: comma or end of line expected

  4. #4
    Membre régulier Avatar de Midou45
    Homme Profil pro
    Ingénieur
    Inscrit en
    Novembre 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Novembre 2007
    Messages : 156
    Points : 110
    Points
    110
    Par défaut
    bonjour !

    Si tu veux comparer la variable tester avec d'autre valeurs tu doit mettre :
    cmp tester,0h par exemple pas entre [ ]

    Si tu veux comparer une valeur a celle dont l'adresse est le contenu de tester
    par exemple tester = 150h

    cmp [150], 0h par exemple tu doit copier le contenu de tester dans un registre d'index comme le BX puis commprer

    cmp [bx]. 0h

    Je pense que sa marche comme sa si j t'ai bien compris !!
    " La nature nous a donné deux oreilles et seulement une langue afin de pouvoir écouter d'avantage et parler moins." Zénon d'Elée

  5. #5
    Membre confirmé Avatar de dapounet
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 469
    Points : 567
    Points
    567
    Par défaut
    Bonjour,

    Il faut tenir compte des différences de syntaxe entre MASM/TASM et NASM/FASM. J'en parle ici : http://dap.developpez.com/tutoriels/...m-windows/#LII.

    Pour le CMP il faut enlever le "ptr" :
    Ça m'étonne qu'on soit obligé de préciser tout le temps la taille de la variable à NASM. Il y a quelque temps je me disais que je ne me rapellais plus trop pourquoi j'avais arrêté de l'utiliser, je suppose que j'ai ma réponse.
    :wq

  6. #6
    Membre du Club Avatar de donkeyquote
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 195
    Points : 52
    Points
    52
    Par défaut
    Oui, c'etait ca !
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 02/02/2009, 17h21
  2. Problème de taille de tableau
    Par k-nine dans le forum C
    Réponses: 6
    Dernier message: 25/09/2005, 09h16
  3. [CSS] Problème de taille de div
    Par meda dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 24/08/2005, 14h30
  4. [swing][JComboBox]Problème de taille
    Par n!co dans le forum Composants
    Réponses: 8
    Dernier message: 06/03/2004, 10h53
  5. [langage] Problème de taille de fichier à mettre dans
    Par And_the_problem_is dans le forum Langage
    Réponses: 10
    Dernier message: 13/08/2002, 09h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo