Les instructions conditionnelles 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 :
- SI ... ALORS ... AUTREMENT
- EVALUATION DE CAS
SI ... ALORS ... AUTREMENT
Si nous partons de l'algorithme suivante :
SI operande = valeur ALORS instructionvrai SINON instructionfausse FIN SI |
On aura donc une syntaxe ressemblant à ceci :
SI1: CMP operande,valeur JNZ SINON1 ALORS1: instructionvrai JMP FINSI1 SINON1: instructionfausse FINSI1: |
Exemple
Dans cet exemple, nous testons une valeur soit AX = 1 et que nous affectons le registre BX dans la condition vrai et DX dans la condition fausse Nous aurons donc une code source assembleur 80x86 ressemblant à ceci :
EVALUATION DE CAS
Si nous partons de l'algorithme suivante :
EVALUATION operande CAS 1 instruction1 CAS 2 instruction2 CAS N instructionn AUTREMENT instructionautrement FIN EVALUATION |
On aura donc une syntaxe ressemblant à ceci :
CAS1: CAS1C1: CMP operande,valeur JNZ CAS1C2 instruction1 JMP FINCAS1 CAS1C2: CMP operande,valeur JNZ CAS1C3 instruction2 JMP FINCAS1 CAS1C3: CMP operande,valeur JNZ CAS1CN instructionn JMP FINCAS1 CAS1CN: CMP operande,valeur JNZ AUTREMENT1 instructionvrai JMP FINCAS1 AUTREMENT1: instructionfausse FINCAS1: |
Remarque
- Lorsque vous avez une suite consécutive de nombres, vous devriez plutôt utiliser une instruction du style «JMP Word Ptr CS:[Offset @Jmp+BX]»
Exemple
On aura donc un programme ressemblant à ceci :
Dernière mise à jour : Samedi, le 25 mai 2019