Académique Documents
Professionnel Documents
Culture Documents
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 :
instruction
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:
instruction
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:
TANTQUE1:
CMP operande,valeur
JNZ FINTANTQUE1
instruction
JMP TANTQUE1
FINTANTQUE1:
REPETER
instruction
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: