Boucle en assembleur

Résolu
Bonjour,
svp si qlq 1 pourra m'aider comment on fait une boucle en assembleur svp aidez moi
Configuration: Windows XP
Internet Explorer 7.0

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. le nasm
    par exemple for(i=0,i<n;i++)
    {
    instructions

    }
    et merci bcp
    1. Modérateur
      Faut utiliser les instructions cmp et jxx
      xx étant la condition, ça peut être jb pour "si plus petit" avec des entiers non signés, ja pour "si plus grand".
      Pour ton exemple si i est dans ecx et n dans eax:
      mov ecx, 0
      boucle:
          cmp ecx, eax   ;comparaison ecx, et eax
          jnb finBoucle   ;si ecx >= eax alors on saute vers finBoucle
      
          ;instructions
      
          jmp boucle ;on boucle (saut inconditionnel
      
      finBoucle:
         ;........

      Ici tu as une référence des sauts conditionnels:
      http://www.unixwiz.net/techtips/x86-jumps.html
    2. @kilianmerci bcp, mais pour l'incrementation de i on fait comment svp?
    3. Modérateur
      @elam2011Zut j'ai oublié d'incrémenter i.
      Si j'étais un bon prof, j'aurais dit que c'était pour savoir si tu suivais O_o

      Il faut que tu fasses
      inc ecx

      inc => incrémenter.
  2. Modérateur
    Bonjour,

    Ca dépend. En quel assembleur?
    Et c'est pour faire une boucle à partir d'une condition particulière? Si oui laquelle?