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 :

[MASM] Définir "ordre de remplacement" des macros


Sujet :

x86 32-bits / 64-bits Assembleur

  1. #1
    Membre habitué Avatar de Crisanar
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    162
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 162
    Points : 137
    Points
    137
    Par défaut [MASM] Définir "ordre de remplacement" des macros
    Bonjour à tous
    J'ai défini une macro :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    GETV MACRO dVar
      mov eax,dVar
      EXITM <eax>
    ENDM
    Qui me permet de faire des choses comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mov Ma_var1,GETV(Ma_var2)
    Mais je viens d'avoir un problème avec un .ELSEIF
    En fait il remplace d'abord le code de ma macro et puis le .ELSEIF, ce qui fait que mon mov eax,dVar se trouve dans le code du .IF qui le précède.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    .IF var1 < eax
      ...
    .ELSEIF var2 == GETV(var2)
      ...
    .ENDIF
    donne ceci à la compilation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CMP Var1,eax
    JNB xxx
    ...
    mov eax,var2
    JMP xxxx
    CMP var2,eax
    ...
    alors que j'attend un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CMP Var1,eax
    JNB xxx
    ...
    JMP xxxx
    mov eax,var2
    CMP var2,eax
    ...
    Est-ce que quelqu'un sait comment empécher celà?
    Merci à tous
    Crisanar

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Points : 696
    Points
    696
    Par défaut
    Peut être que le concepteur n'avait pas pensé à cela.

    Peut être changer en une structure comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    IF 
     
    ELSE
      IF
     
      ENDIF
    ENDIF
    Ca ne devrait pas produire un code différent, et il me parait difficile que le branchement qui précède le ELSE se fasse avant la condition du second if.


    Blustuff.

  3. #3
    Membre habitué Avatar de Crisanar
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    162
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 162
    Points : 137
    Points
    137
    Par défaut
    Merci pour la réponse , c'est vrai qu'à force d'utiliser les structures imbriquées j'en avais oublié la structure basique

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

Discussions similaires

  1. Définir l'ordre des onglets dans un TabControl
    Par soso78 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 20/12/2007, 15h57
  2. Réponses: 1
    Dernier message: 02/05/2007, 16h16
  3. Réponses: 3
    Dernier message: 23/10/2005, 23h06

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