Vous êtes sur la page 1sur 7

V-6 Les Instructions de COMPARAISON

L’Instruction CMP

 Cette instruction compare 2 Registres ou Emplacements de Mémoire.


 Les Opérations de comparaisons sont quasi toujours suivies d’une instruction de
branchement conditionnel.
 Le Résultat de la comparaison est indiqué par les INDICATEURS.

CMP reg , imm


CMP mem , imm
CMP reg , mem
CMP mem , reg
CMP reg , reg

NB:

Une Opération de comparaison est en fait une SOUSTRACTION qui n’affecte


aucune Opérande
CMP AX , B X ⇔ (BX – AX)

 Dans le cas de comparaison de CARACTERES, on effectue la SOUSTRACTION


des codes ASCII des caractères

V-7 Les Instructions de Rupture de séquence

 Les instructions d’un PGM sont normalement exécutées par le


MICROPROSSECEUR les unes à la suite des autres dans l’ordre ou elles se
trouvent.

 Le Microprocesseur utilise 2 Registres pour connaitre la prochaine Instruction


à exécuter.
CS : IP

 Ces Registres CS et IP ne pourront jamais être modifiés directement

(MOV CS , Ø124 est INTERDIT)


 Pour modifier la SEQUENCE des Instructions, Le Programmeur devra utiliser des
Instructions de branchement qui provoquent un SAUT à une partie du PGM reperée
par un LABEL.

On parlera de RUPTURE de SEQUENCE.

Ce sont des instructions qui modifieront IP et éventuellement CS.

Il existe 5 types d’Instructions de Rupture de Séquence.

 Les sauts INCONDITIONNELS


(JMP)
 Les sauts CONDITIONNELS

( JZ , JE , JA , JB , JG , JL , JC , JS ,
JNZ , JNE , JNA , JNB ,JNG , JNL , JLE ,JNC
JNS ,JNO )

 Les Boucles
(LOOP)
 Les sous Programmes
(CALL)
 Les Interruptions
(INT)

 Les sauts CONDITIONNELS


 Ils ne sont exécutés que si une CERTAINE CONDITION est SATISFAITE
(Saut avec condition)

 Ces Instructions testent l’ETAT des Indicateurs (FLAG)

 Les Boucles
 Exécuter une BOUCLE consiste à répéter une série d’instruction
 Le nombre de REPETITIONS pourra être fixé ou dépendre d’une condition.

L’instruction LOOP

Cette instruction décrémente le Registre CX et effectue un


BRANCHEMENT au LABEL spécifié à condition que CX soit
NON NUL

Exemple : calcul de la somme des Nombres de 1 à 100

MOV CX , 100 ; CX←100

MOV AX , 0 ; Initialisation de AX qui contiendra la somme

MOV BX , 0 ; BX contiendra les nombres 1,2,3,…. à additionner dans AX


Repeter :

INC BX ; BX ←1, 2,3,…

ADD AX , BX ; AX←1+2+3+….

LOOP Repeter ; Forcer le saut au label Repeter si CX ⧧Ø


 Les Procédures (SOUS PROGRAMMES)

 Les sous – Programmes sont constitués d’instructions comme n’importe quel


PGM.

 Ils sont en général prévu pour exécuter un traitement particulier comme :


- Afficher un MESSAGE
- Lire un caractère au clavier
- Imprimer un Texte

NB : Un PGM sera souvent constitué de plusieurs SOUS – PGM

Les Instructions PROC et ENDP et RET

 L’Instruction PROC signale à l’Assembleur le début d’un SOUS –PGM


et ENDP signale la fin des Instructions de SOUS- PGM.

nomdeproc PROC NEAR

nomdeproc ENDP

NB : ”nomdeproc” est un identificateur représentant le nom du SOUS-PGM.

 RET , Instruction pour le retour au PGM principal


Exemple :
Sous –pgm qui lit un caractère au clavier et l’envoie au PGM appelant par
l’intermédiaire de registre AL

Lirecar PROC NEAR ; marque le début de sous –PG

MOV AH , 0 ; AH ←service 0

INT 16h ; AL ←caractère lu

RET ; Retour au PGM

Lirecar ENDP ; marque la fin du sous pgm

L’instruction CALL

Cette instruction force le Microprocesseur à exécuter les instructions du sous-PGM avant de


continuer.
Dès que le sous-PGM est terminé l’exécution reprendra son cours à l’instruction qui suit le
CALL

CALL nomdeproc

CALL mem

Exemple :

LireCar PROC NEAR ; définition du Sous-PGM « LireCar »

….

….

RET
LireCar ENDP ; fin du sous-PGM « LireCar »

ImpCar PROC NEAR ; définition du Sous –PGM « ImpCar »

….

….

RET

ImpCar ENDP ; fin du Sous –PGM « ImpCar »

CALL LireCar ; Appel du sous-PGM « LireCar »

CALL ImpCar ; Appel du sous-PGM « ImpCar »

 Les Sauts Indexés

JMP reg

JMP mem

Exemple :

JMP BX ; saut à l’adresse contenue dans DS : BX

 Les Sauts Inconditionnels

JMP label

Les sauts inconditionnels provoquent un branchement à une instruction du PGM.

L’Instruction est repérée par un Label.

L’Instruction ne modifie pas les Indicateurs.

NB : Pour DEBUG le Label sera le Numero d’Offset de la ligne


d’Adresse à se brancher
Ex : JMP 200

Vous aimerez peut-être aussi