Boucle en assembleur

Résolu/Fermé
elam2011 Messages postés 9 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 7 juin 2008 - 7 juin 2008 à 01:33
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 7 juin 2008 à 02:03
Bonjour,
svp si qlq 1 pourra m'aider comment on fait une boucle en assembleur svp aidez moi

2 réponses

elam2011 Messages postés 9 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 7 juin 2008 4
7 juin 2008 à 01:37
le nasm
par exemple for(i=0,i<n;i++)
{
instructions

}
et merci bcp
4
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
7 juin 2008 à 01:48
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
elam2011 Messages postés 9 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 7 juin 2008 4 > kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016
7 juin 2008 à 01:54
merci bcp, mais pour l'incrementation de i on fait comment svp?
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527 > elam2011 Messages postés 9 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 7 juin 2008
7 juin 2008 à 02:03
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
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
7 juin 2008 à 01:34
Bonjour,

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