Vous êtes sur la page 1sur 2

15/06/2022 20:21 Langage de programmation - Assembleur 80x86 - Les instructions de boucles

Gladir.com - Langage de programmation - Assembleur 80x86 - Les instructions de boucles


 Langage   Elément   Tutoriel   Programmation   Plateforme   Compilateur   Outils   Emulateur   Annexe   Aide 

Les instructions de boucle en assembleur ont une forme très différentes des langages de programmation évolué comme C, Pascal ou Ada.
Il est cependant possible d'avoir un équivalent des formats classiques d'instructions conditionnelles, soit les formes suivantes :

BOUCLE POUR
FAIRE TANT QUE condition ... FIN FAIRE TANT QUE
REPETER ... JUSQU'A condition

BOUCLE POUR
Si nous partons de l'algorithme suivante :

BOUCLE POUR variable = valeurdebut JUSQU'A valeurfin

   instruction

FIN BOUCLE POUR

On aura donc une syntaxe ressemblant à ceci :

   MOV CX,valeurdebut

POUR1:

   CMP CX,valeurfin

   JA FINPOUR1

   instruction

   INC CX

   JMP POUR1

FINPOUR1:

Exemple

L'exemple suivant permet d'avoir la valeur multiplié du compteur à chaque passage de la boucle :

1.    MOV CX,0
2. POUR1:
3.    CMP CX,10
4.    JA FINPOUR1
5.    MOV BX,CX
6.    SHL BX,1
7.    INC CX
8.    JMP POUR1
9. FINPOUR1:

FAIRE TANT QUE condition ... FIN FAIRE TANT QUE


Si nous partons de l'algorithme suivante :

BOUCLE FAIRE TANT QUE operande = valeur

   instruction

FIN BOUCLE FAIRE TANT QUE

Exemple

L'exemple suivant permet de diviser par la valeur de BX jusqu'à ce qu'elle a la valeur 0 :

1. TANTQUE1:
2.    CMP BX,0
3.    JNZ FINTANTQUE1
4.    SHR BX,1
5.    JMP TANTQUE1
6. FINTANTQUE1:

On aura donc une syntaxe ressemblant à ceci :

TANTQUE1:

   CMP operande,valeur

   JNZ FINTANTQUE1

   instruction

   JMP TANTQUE1

FINTANTQUE1:

https://www.gladir.com/CODER/ASM8086/boucle.htm#:~:text=Les instructions de boucle en,FAIRE TANT QUE condition ... 1/2


15/06/2022 20:21 Langage de programmation - Assembleur 80x86 - Les instructions de boucles

REPETER ... JUSQU'A condition


Si nous partons de l'algorithme suivante :

REPETER

   instruction

JUSQU'A operande = valeur

On aura donc une syntaxe ressemblant à ceci :

REPETER1:

   instruction

   CMP operande,valeur

   JNZ REPETER1

FINREPETER1:

Exemple

L'exemple suivant permet de diviser par la valeur de BX jusqu'à ce qu'elle a la valeur 0 :

1. REPETER1:
2.    SHR BX,1
3.    CMP BX,0
4.    JNZ REPETER1
5. FINREPETER1:

PARTAGER CETTE PAGE SUR


Dernière mise à jour : Samedi, le 25 mai 2019

https://www.gladir.com/CODER/ASM8086/boucle.htm#:~:text=Les instructions de boucle en,FAIRE TANT QUE condition ... 2/2

Vous aimerez peut-être aussi