Boucle en assembleur

Résolu
elam2011 Messages postés 9 Statut Membre -  
kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   -
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

  1. elam2011 Messages postés 9 Statut Membre 4
     
    le nasm
    par exemple for(i=0,i<n;i++)
    {
    instructions

    }
    et merci bcp
    4
    1. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
       
      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
      0
      1. elam2011 Messages postés 9 Statut Membre 4 > kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention  
         
        merci bcp, mais pour l'incrementation de i on fait comment svp?
        0
      2. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526 > elam2011 Messages postés 9 Statut Membre
         
        Zut 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.
        0
  2. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    Bonjour,

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