Vous êtes sur la page 1sur 6

Filière : Génie Informatique (GI)- S1 Elément 1 : Ecole Supérieure de

Module : Architecture des ordinateurs Architecture des ordinateurs Technologie - Kenitra


et langage machine Univ. Ibn Tofail
Année universitaire : 2020/2021
Travaux pratiques

TP 5

Les registres de l’UAL

Deux registres sont associés à l'UAL : l'accumulateur et le registre d'état.

l’instruction MOV n’a pas


d’impacte sur le registre d’état !!!!

Aucun changement ne sera


appliqué sur les differents
indicateurs

1. L'accumulateur (nommé : A)

C'est une des deux entrées de l'UAL. Il est impliqué dans presque toutes les
opérations réalisées par l'UAL.

Exemple :
A étant l'accumulateur et B un registre, on peut avoir :
ADD A, B :
Addition du contenu du registre A avec celui du registre B, le résultat étant mis
dans A)

2. Le registre d'état (Flags : F)

A chaque opération, le microprocesseur positionne un certain nombre de bascules


d'état. Ces bascules sont appelées aussi indicateurs d'état ou drapeaux (status,
flags).

Pr. Korchiyne Redouan EST-Kenitra. Univ. Ibn Tofail 1


Par exemple, si une soustraction donne un résultat nul, l'indicateur de zéro ( Z )
sera mis à 1.
Ces bascules sont regroupées dans le registre d'état
On peut citer comme indicateur :
 Retenue (carry : C)
 Retenue intermédiaire (Auxiliary-Carry : AC)
 Signe (Sign : S)
 Débordement (overflow : O)
 Zéro (Z)
 Parité (Parity : P)
a) Retenue : (carry : C)
 Stockage de la retenue arithmétique
Exemple : Addition de nombres binaire sur 8 bits
11111100
+ 10000010
C (carry) : 1 = 01111110

Donc la retenue est stockée dans l’indicateur C.

 Opération de décalage ou de rotation


La bascule C (carry) sert aussi à capter le bit expulsé lors d'une opération de
décalage ou de rotation

Exemple : Décalage à gauche d'un bit de cet octet : 10010110


La carry recueille le 1 du bit de poids fort carry : 1 00101100
b) Retenue intermédiaire : (Auxiliary Carry : AC)
Sur les opérations arithmétiques, ce drapeau signale une retenue entre groupes
de 4 bits (Half-byte : demi-octet) d'une quantité de 8 bits.
c) Signe : (S)
Cette bascule est mise à 1 lorsque le résultat de l'opération est négatif ( bit de
plus fort poids du résultat à 1 ).

d) Débordement : (Overflow : O)
Cet indicateur est mis 1, lorsqu'il y a un dépassement de capacité pour les
opérations arithmétiques en complément à 2.

Pr. Korchiyne Redouan EST-Kenitra. Univ. Ibn Tofail 2


Sur 8 bits, on peut coder de -128 ( 1000 0000 ) à +127 ( 0111 1111 ).
e) Zéro : (Z)
Cette bascule est mise à 1 lorsque le résultat de l'opération est nul.
f) Parité : (P)
Cette bascule est mise à 1 lorsque le nombre de 1 de l'accumulateur est pair.
Remarque
La plupart des instructions modifient le registre d'état.
==================================
Application sur les indicateurs (Flag) :
Dans chaque cas donner le contenu des registres et les états des registres flags
avec démonstrations des calculs.
1. Addition sans retenue
La retenue est positionnée en fonction du résultat de l’opération.

Exemple 1 :

Mov ax, 0xa9 ; (ax = ?)

Add ax, 72h ; (ax=…………………….


00A9 011B
ax=………………..)

Donner les états des registres suivants avec explications :

0
1

Exemple 2 :

Mov ax , 09h ; (ax= ?)

Add ax, 3ah ; (ax=……………………….


0009  ax = …………..)
0043

Pr. Korchiyne Redouan EST-Kenitra. Univ. Ibn Tofail 3


Donner les états des registres suivants avec explications :

2. Soustraction sans retenue


La retenue est positionnée en fonction du résultat de l’opération.

Exemple 1 :

Mov ax, 39h ; (ax= ?)

Sub ax, 18h ; (ax=…………………  ax=……)

Donner les états des registres suivants avec explications :

Exemple 2 :

Mov ax , 26h ; (ax= ?)

Sub ax, 59h ; (ax=……………  ax = ?)

Pr. Korchiyne Redouan EST-Kenitra. Univ. Ibn Tofail 4


Donner les états des registres suivants avec explications :

10110101 01010110 00110011


0 1 1
1 1 0
1 0 0

0 0 0
AF= 1 AF= 1 AF= 0
PF= 0

Pr. Korchiyne Redouan EST-Kenitra. Univ. Ibn Tofail 5


Tableau des instructions

Symbole Code Op. Octets Opération


MOV AX, valeur B8 3 AX ← valeur
MOV AX, [ adr ] A1 3 AX ← contenu de l'adresse adr.
MOV [ adr ], AX A3 3 range AX à l'adresse adr.
MOV CX, valeur B9 3 CX ← valeur
MOV DL, AL 8AD0 2 DL ← AL
MOV AH, valeur B4 2 AH ← valeur
ADD AX, valeur 05 3 AX ← AX + valeur
ADD AX,[ adr ] 03 06 4 AX ← AX + contenu de adr.
SUB AX, valeur 2D 3 AX ← AX - valeur
SUB AX, [ adr ] 2B 06 4 AX ← AX - contenu de adr.
MUL CX F7E1 2 AX ← AX × CX
SHR AX, 1 D1 E8 2 décale AX à droite.
SHL AX, 1 D1 E0 2 décale AX à gauche.
INC AX 40 1 AX ← AX + 1
DEC AX 48 1 AX ← AX - 1
CMP AX, valeur 3D 3 compare AX et valeur.
CMP AX, [ adr ] 3B 06 4 compare AX et contenu de adr.
CMP CX, valeur 83 F9 4 compare CX et valeur.
JMP adr EB 2 saut inconditionnel (adr. relatif).
JE adr 74 2 saut si =
JNE adr 75 2 saut si 6 ≠
JNBE adr 77 2 saut si <
JG adr 7F 2 saut si >
JLE adr 7E 2 saut si ≤
JA adr 2 saut si CF = 0
JB adr saut si CF = 1
INT 20 CD 20 2 Fin du programme.
INT 21 CD 21 2 Appel du BIOS DI et retour au DOS

Pr. Korchiyne Redouan EST-Kenitra. Univ. Ibn Tofail 6

Vous aimerez peut-être aussi