Section courante

A propos

Section administrative du site

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

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 :

  1. SI1:
  2.     CMP AX,1
  3.     JNZ SINON1
  4. ALORS1:
  5.     MOV BX,74
  6. JMP FINSI1
  7. SINON1:
  8.     MOV DX,75
  9. FINSI1:

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

Exemple

On aura donc un programme ressemblant à ceci :

  1. CAS1:
  2. CAS1C1:
  3.    CMP AX,1
  4.    JNZ CAS1C2
  5.    MOV BX,1
  6.    JMP FINCAS1
  7. CAS1C2:
  8.    CMP AX,2
  9.    JNZ CAS1C3
  10.    MOV BX,2
  11.    JMP FINCAS1
  12. CAS1C3:
  13.    CMP AX,3
  14.    JNZ CAS1CN
  15.    MOV BX,3
  16.    JMP FINCAS1
  17. CAS1CN:
  18.    CMP AX,255
  19.    JNZ AUTREMENT1
  20.    MOV BX,255
  21.    JMP FINCAS1
  22. AUTREMENT1:
  23.    MOV BX,65535
  24. FINCAS1:


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