Vous êtes sur la page 1sur 24

Langage Assembleur

Schma dune unit de contrle


UNIT DE CONTROLE
mot mmoire venant du registre de donnes du bloc de contrle de mmoire

REGISTRE D'INSTRUCTION
CODE D'OPRATION ADRESSE(S) OPRANDE(S)

DCODEUR D'INSTRUCTION
DCODEUR D'OPRATION DCODEUR D'ADRESSE

SQUENCEUR

COMPTEUR ORDINAL

signaux allant vers les autres units de l'ordinateur

adresse allant vers le registre d'adresse du bloc de contrle de mmoire

Format gnral d'une instruction. Le schma suivant montre le format gnral d'une instruction trois oprandes

CODE OPRATION

SPCIFICATEUR D'OPRANDE m bits

SPCIFICATEUR D'OPRANDE m bits n bits

SPCIFICATEUR D'OPRANDE m bits

n-3m bits

Exemple d'un rpertoire d'instructions. Voici un rpertoire d'instructions trs simple. Les instructions de cette machine fictive sont codes sur 18 bits rpartis de la faon suivante:

CODE OPRATION 3 bits

ADRESSE DU 1er OPRANDE 5 bits

ADRESSE DU 2e OPRANDE

ADRESSE DU 3e OPRANDE 5 bits

5 bits 18 bits

Les 3 bits du code d'opration permettent de disposer de 8 instructions diffrentes. Le rpertoire pourrait tre le suivant:

Tableau 1 CODE 000 001 010 OPRATION Addition Soustraction Initialisation MNMONIQUE ADD SOU INI SIGNIFICATION C (A) + (B) C (A) - (B) Si A 0 alors A C Si B 0 alors B 1 Si C 0 alors C 2 Si (A) = (B) alors compteur ordinal

011

Rupture Conditionnelle Rupture Inconditionnelle Lecture

EGU

100 101

RUP LIR

110

criture

ECR

111

Arrt

ARR

compteur ordinal C Lire un nombre octal et le ranger dans A; si B 0 en lire un second si C 0 en lire un troisime Imprimer (A); si B 0 alors imprimer (B) si C 0 alors imprimer (C) Ne plus excuter d'instructions

Dans ce tableau, la premire colonne donne le code d'opration binaire (sur 3 bits); chaque opration est symbolise par le mnmonique correspondant. Les lettres A, B et C dsignent des adresses symboliques et (A), (B) et (C) dsignent le contenu des cellules d'adresses A, B et C (les adresses effectives). Les affectations sont reprsentes par :C (A) signifie de placer l'adresse C le contenu de la cellule d'adresse A. Exemple d'une instruction machine et de son excution. [29] [12] + [18]

Il s'agissait de faire l'addition du contenu de la cellule d'adresse 12 et du contenu de la cellule d'adresse 18 et de ranger le rsultat dans la cellule d'adresse 29. Nous pouvons crire cette instruction avec le rpertoire d'instructions. Code opration ADD Oprandes A, B, SOMME

partir des adresses des oprandes et du code opration, nous pouvons construire l'instruction machine de la faon suivante:

ADD adresse dcimale binaire octal 000 000 0

A, 12 01100 011 3

B, 18 10010 001 1

Somme 29 11101 001 011 1 3

101 5

Imaginons que l'instruction machine soit loge l'adresse de la mmoire centrale. Pour que cette instruction soit excute, le travail de l'unit de contrle s'effectuerait selon la squence d'vnements suivante: Au temps T0: L'unit centrale de traitement traite l'instruction loge l'adresse -1 de la mmoire

ADRESSES

DONNES

MMOIRE 12
REGISTRE D'ADRESSE

000010

29
REGISTRE DE DONNES

??????

-1

-1

18

000004

?????? 031135

UNIT CENTRALE DE TRAITEMENT UNIT DE CONTROLE


REGISTRE D'INSTRUCTION

UNITE ARITHMTIQUE ET LOGIQUE R4 R3 R2 R1

??????
DCODEUR D'INSTRUCTION

SQUENCEUR

COMPTEUR ORDINAL

REGISTRE DE DONNES

-1

REGISTRE D'ADRESSE

Au temps T1: Le compteur ordinal passe l'adresse . L'instruction loge l'adresse est charge dans le registre d'instruction de l'unit de contrle. L'unit de contrle commence le dcodage. Le squenceur avertit les units concernes (ALU, mmoire) et orchestre les oprations.

Dans un premier temps, le dcodeur d'adresses transmet la premire adresse dchiffre (A) l'ALU cela permettant l'ALU de lire le contenu de l'adresse A ce contenu est transfr dans le registre de donnes de l'ALU pour finalement tre rang dans le registre R2 de l'ALU.
ADRESSES DONNES

MMOIRE 12

000010 000004
5 4

REGISTRE D'ADRESSE

18 29

12

-1

?????? 031135

REGISTRE DE DONNES

000010

UNIT CENTRALE DE TRAITEMENT UNIT DE CONTROLE


REGISTRE D'INSTRUCTION

UNITE ARITHMTIQUE ET LOGIQUE R4 R3


7

031135
1

DCODEUR D'INSTRUCTION

R2 R1

000010

ADD 12

SQUENCEUR

COMPTEUR ORDINAL

REGISTRE DE DONNES

000010
2

REGISTRE D'ADRESSE

12

Au temps T2: L'unit de contrle coordonne le chargement du contenu de l'adresse B dans registre R3 de l'ALU:

le

ADRESSES

DONNES

MMOIRE 12 18 29

000010 000004

REGISTRE D'ADRESSE 4

18

5 REGISTRE DE DONNES 3

-1

?????? 031135

000004

UNIT CENTRALE DE TRAITEMENT UNIT DE CONTROLE


REGISTRE D'INSTRUCTION

UNITE ARITHMTIQUE ET LOGIQUE R4


7

031135
DCODEUR D'INSTRUCTION

R3 R2 R1

000004 000010

ADD 12
1

18

SQUENCEUR

COMPTEUR ORDINAL

REGISTRE DE DONNES

000004
2

REGISTRE D'ADRESSE

18

Au temps T3: l'unit de contrle dcode l'adresse de SOMME, l'adresse de SOMME ainsi que le code d'opration sont transmis l'ALU. L'ALU excute l'opration l'aide de son additionneur et range la valeur du rsultat dans le registre R4, la valeur du rsultat est copie dans le registre de donnes, la valeur du rsultat est copie l'adresse SOMME de la mmoire. Figure 18
ADRESSES DONNES

MMOIRE 12 18 29

000010 000004 000014

REGISTRE D'ADRESSE

29

-1

?????? 031135

REGISTRE DE DONNES

000014

UNIT CENTRALE DE TRAITEMENT UNIT DE CONTROLE


REGISTRE D'INSTRUCTION

UNITE ARITHMTIQUE ET LOGIQUE R4


ADDITIONNEUR

000014 000004 000010

031135
DCODEUR D'INSTRUCTION

R3 R2 R1

ADD 12

18

29

SQUENCEUR

COMPTEUR ORDINAL

REGISTRE DE DONNES

000014
REGISTRE D'ADRESSE

29

Exemple d'un programme en langage machine. l'aide du rpertoire d'instructions du tableau, crivons un programme permettant de lire l'unit d'entre (clavier) trois nombres entiers octaux (par exemple: 103, 411 et 1000), qu'on logera respectivement aux adresses octales 15, 16 et 21. Le rsultat de l'addition sera rang dans la cellule de mmoire d'adresse octale 22, puis livr l'unit de sortie (cran ou imprimante). Supposons que A, B, C et TOTAL reprsentent symboliquement ces adresses. Voici le programme effectuant ce problme: OPRATIONS INSTRUCTIONS MACHINE (en octal) 532721 032722 045062 600022 700000

LIR A, B, C ADD A, B, TOTAL ADD TOTAL, C, TOTAL ECR 0, 0, C ARR 0, 0, 0 La squence revient :

Lire l'unit d'entre 3 nombres et les loger respectivement aux adresses A, B et C. Additionner le contenu de la cellule d'adresse 15 celui de la cellule d'adresse 16 et de placer le rsultat la cellule d'adresse 22. Additionner le contenu de la cellule 22 celui de la cellule 21 et placer le rsultat la cellule 22. crire l'unit de sortie le nombre situ l'adresse TOTAL. Arrter ADD adresse octale adresse dcimale binaire octal A1, 15 13 01101 011 3 A2 16 14 01110 010 2 Somme 22 18 10010 111 7

000 000 0

010 2

010 2

L'instruction 032722 en octal est l'quivalent de l'instruction binaire 000011010111010010. Les autres instructions octales sont dduites de la mme faon.

UNIT DE CONTROLE
REGISTRE D'INSTRUCTION REGISTRE D'ADRESSE

MMOIRE 15 16 21 22 29 30 31 32 33
4 1 REGISTRE DE DONNES 3 2

29

532721
DCODEUR D'INSTRUCTIONS

SQUENCEUR

COMPTEUR ORDINAL

532721

29

532721 032722 045062 600022 700000

ADRESSES

DONNES

UNIT DE CONTROLE
REGISTRE D'INSTRUCTION

MMOIRE
REGISTRE D'ADRESSE

15

15 16 21 22 29 30 31 32 33

000103

532721
ADRESSE de A DCODEUR D'INSTRUCTIONS REGISTRE DE DONNES

SQUENCEUR

COMPTEUR ORDINAL

000103

30

532721 032722 045062 600022 700000

000103 UNIT D'ENTRE

entre du premier nombre

Une fois que les trois nombres sont lus et rangs en mmoire de la mme faon, la deuxime instruction (ADD A,B, TOTAL) est copie dans le registre d'instruction de l'unit de contrle et dcode son tour. Des signaux de synchronisation sont envoys l'ALU et la mmoire. L'ALU va chercher le premier oprande en mmoire et le copie dans un de ses registres:

MMOIRE UNIT DE CONTROLE


REGISTRE D'INSTRUCTION REGISTRE D'ADRESSE

15
adresse 1er oprande

15 16 21 22 29 30 31 32 33

000103 000411 001000

032722
DCODEUR D'INSTRUCTIONS

SQUENCEUR

COMPTEUR ORDINAL

REGISTRE DE DONNES

000103

31

532721 032722 045062 600022 700000

1er oprande

opration adresses des oprandes

UNIT ARITHMTIQUE ET LOGIQUE

Le deuxime oprande est ensuite copi de la mme faon dans un des registres de l'ALU:
UNIT DE CONTROLE
REGISTRE D'INSTRUCTION

MMOIRE
REGISTRE D'ADRESSE

16
adresse 2e oprande

15 16 21 22 29 30 31 32 33

000103 000411 001000

032722
DCODEUR D'INSTRUCTIONS

SQUENCEUR

COMPTEUR ORDINAL

REGISTRE DE DONNES

000411

31

532721 032722 045062 600022 700000

2e oprande

UNIT ARITHMTIQUE ET LOGIQUE

Une fois l'opration effectue, le rsultat est copi en mmoire. Le compteur ordinal a t incrment et indique l'adresse de l'instruction suivante:

UNIT DE CONTROLE
REGISTRE D'INSTRUCTION

MMOIRE
REGISTRE D'ADRESSE

22
adresse 3e oprande

15 16 21 22 29 30 31 32 33

000103 000411 001000 000514 532721 032722 045062 600022 700000

032722
DCODEUR D'INSTRUCTIONS

SQUENCEUR

COMPTEUR ORDINAL

REGISTRE DE DONNES

000514

31

Rsultat

UNIT ARITHMTIQUE ET LOGIQUE

UNIT DE CONTROLE
REGISTRE D'INSTRUCTION

MMOIRE
REGISTRE D'ADRESSE

33

15 16 21 22 29 30 31 32 33

000103 000411 001000 001514 532721 032722 045062 600022 700000

700000
DCODEUR D'INSTRUCTIONS REGISTRE DE DONNES

SQUENCEUR

COMPTEUR ORDINAL

700000

34

Instruction 4 adresses.

CODE OPRATION n-4m bits

ADRESSE DU 1er OPRANDE

ADRESSE DU 2e OPRANDE m bits

ADRESSE DU 3e OPRANDE m bits

ADRESSE INSTRUCTION SUIVANTE m bits

m bits

n bits .

Exemple : ADD X, Y, Z, W L'instruction signifie: (Z) (X) + (Y) & (W) c'est dire:

additionner les contenus des cellules de mmoire d'adresse X et Y, placer le rsultat de l'addition dans la cellule d'adresse Z, aller chercher la prochaine instruction la cellule d'adresse W. Instruction 3 adresses.

CODE OPRATION n-3m bits

ADRESSE DU 1er OPRANDE m bits

ADRESSE DU 2e OPRANDE m bits

ADRESSE DU 3e OPRANDE m bits

n bits .

Un processeur fonctionnant avec de telles instructions localise l'instruction suivante l'aide d'un registre compteur ordinal. Le compteur ordinal doit comporter m bits de position, car il est destin recevoir des adresses. Instruction 2 adresses

CODE OPRATION n-2m bits

ADRESSE DU 1er OPRANDE m bits

ADRESSE DU 2e OPRANDE m bits

n bits .

Les instructions 2 adresses sont les plus courantes. L'adresse du rsultat est implicitement choisie: celui-ci est rang l'adresse du 2ime oprande ou celle du premier oprande selon le choix fait par le constructeur. Exemple: L'expression (X) = (A + B * C) / D peut tre programme de la faon suivante: INSTRUCTION MUL B, C ADD A, C DIV C, D MOV D, X PSEUDO-CODE (C) (C) (D) (X) (B) * (C) (A) * (C) (C) / (D) (D)

Avantages sur les instructions 3 ou 4 adresses: 1. puissance accrue de la machine, car pour une mme longueur d'instruction on a: a) des oprandes plus longs (donc possibilit de faire rfrence plus de cellules de mmoire) et/ou b) un code d'opration plus long (donc plus d'instructions diffrentes dans le rpertoire) 2. baisse du cot reli au dcodage 3. moins d'accs la mmoire requis Cette machine avait des instructions sur 18 bits. Chaque instruction avait 3 oprandes de 5 bits et un code d'opration sur 3 bits, ce qui lui donnait les caractristiques suivantes: nombre de cellules de mmoire adressables: nombre d'instructions du rpertoire: 25 = 32 cellules 23 = 8 instructions

Imaginons la mme machine, mais avec 2 oprandes au lieu de 3. Les 18 bits de l'instruction pourraient, par exemple, se rpartir ainsi: 2 oprandes de 7 bits et un code d'opration de 4 bits, ce qui donnerait les caractristiques suivantes: nombre de cellules de mmoire adressables: 27 = 128 cellules nombre d'instructions du rpertoire: 24 = 16 instructions Comme on le constate, le rpertoire d'instruction a doubl et le nombre de cellules de mmoire adressables a quadrupl par rapport l'instruction trois adresses. Instruction une adresse
CODE OPRATION n-m bits ADRESSE DE L' OPRANDE m bits

n bits .

Une instruction une adresse ncessite non seulement un compteur ordinal, mais aussi un registre supplmentaire pour stocker temporairement les valeurs intermdiaires pendant le calcul. Ce registre, appel accumulateur (ACC.) peut contenir la donne source ou le rsultat du calcul. Exemple: Le calcul de l'expression (X) = (A + B * C) / D peut tre programm de la faon suivante: INSTRUCTIONS LOAD B MUL C ADD A DIV D STORE X SIGNIFICATION ACC. (B) ACC Contenu de l'ACC. (C) ACC Contenu de l'ACC. + (A) ACC Contenu de l'ACC. / (D) (X) Contenu de l'ACC.

Instruction 0 adresse Le processeur 0 adresse possde un accumulateur particulier qu'on nomme pile. Une pile est un rangement par ordre chronologique. Contrairement un accumulateur ordinaire, placer une donne dans une pile ne dtruit pas son contenu prcdent: celui-ci sera plutt repouss au fond de la pile. Gnralement, l'accs aux donnes se fait dans l'ordre inverse o celles-ci ont t ranges dans la pile; on dsigne souvent ce type d'accs par le sigle anglais LIFO (Last In, First Out). Cela implique qu'on a accs qu' la donne qui est au sommet de la pile (soit la dernire entre) ou aux donnes se trouvant dans des emplacements conscutifs partir du sommet.
PILE

ORDRE D'ENTRE

ORDRE DE SORTIE

L'instruction 0 adresse permet de modifier la pile en effectuant une opration sur les deux donnes partir du sommet, et en plaant le rsultat de l'opration au sommet de la pile.

Exemple: dans la pile.

ADD signifie: additionner les valeurs du sommet de la pile et placer le rsultat

valeur de X valeur de Y valeur de Z

ADD

valeur de X + valeur de Y valeur de Z

Pour ranger des donnes dans la pile ou pour les en retirer, on utilise deux instructions : PUSH A: place le contenu de A dans la pile (et pousse les contenus prcdents vers le fond de la pile) POP A: retire la valeur situe au sommet de la pile et la range l'adresse A (et fait "remonter" les contenus prcdents d'une position vers le sommet) Exemple: Le calcul de l'expression (R) = ((R) + (Y))/((A) + (B)) peut tre programme de la faon suivante: NO. 1 2 3 4 5 6 7 8 9 10 11 12 13 INSTRUCTIONS A PUSH B PUSH ADD Y PUSH R PUSH ADD DIV POP R SIGNIFICATION Entrer la valeur de A Placer la valeur de A dans la pile Entrer la valeur de B Placer la valeur de B dans la pile Sommet de la pile (A) + (B) Entrer la valeur de Y Placer la valeur de Y dans la pile Entrer la valeur de R Placer la valeur de R dans la pile Sommet de la pile (Y) + (R) Sommet de la pile Rsultat de la 2ime addition divis par Rsultat de la 1ire addition Sortir la valeur de Sommet de la pile R Sommet de la pile

La figure suivante montre quel est le contenu de la pile aprs chacune des oprations:

CONTENU DE LA PILE APRES CHAQUE INSTRUCTION

1.

2.
(B) (A)

3.

4.
(Y)

(A)

(A) + (B)

(A) + (B)

5.
(R) (Y)

6.

7.

(R) + (Y) (A) + (B) (R) + (Y) (A) + (B)

(A) + (B)

Mmoire
Avec une bascule cest possible de mmoriser une information sur 1 seul bit. Avec un registre cest possible de mmoriser une information sur n bits. Si on veut mmoriser une information de taille important il faut utiliser une mmoire. La capacit ( taille ) dune mmoire est le nombre (quantit) dinformations quon peut enregistrer ( mmoriser ) dans cette mmoire. La capacit peut sexprimer en : Bit : un bit est llment de base pour la reprsentation de linformation . Octet : 1 Octet = 8 bits kilo-octet (KO ) : 1 kilo-octet (KO )= 1024 octets = 2 octets Mga-octet ( MO) : 1 Mga-octet ( MO)= 1024 KO = 2 octets Gga-octet ( GO) :Gga-octet ( GO)=1024 MO = 2 octets Tra-octet (To) : 1 tra-octet (To)= 1024 Go =2 octets Comment calculer la capacit dune MC ? Soit k la taille du bus dadresses ( taille du registre RAM) Soit n la taille du bus de donnes ( taille du registre RIM ou la taille dun mot mmoire ) On peut exprimer la capacit de la mmoire centrale soit en nombre de mots mmoire ou en bits ( octets, kilo-octets,.) La capacit = 2 Mots mmoire La capacit = 2 * n Bits Exemple : Dans une mmoire la taille du bus dadresses K=14 et la taille du bus de donnes n=4. Calculer la capacit de cette mmoire ? C=214 = 16384 Mots de 4 bits C= 2 * 4 = 65536 Bits = 8192 Octets = 8 Ko

LA SEGMENTATION DE LA MEMOIRE
Le 8086 possde 20 bits d'adresse, il peut donc adresser 2 octets soit 1 Mo. L'adresse de la premire case mmoire est 0000 0000 0000 0000 0000 celle de la dernire casse est 1111 1111 1111 1111 1111 1111. Il me parat inutile de justifier pourquoi partir de cet instant, nous allons reprsenter les adresses en hexadcimal, et notre 8086 peut donc adresser 1 Mo allant de 00000 FFFFF. Le problme qui se pose est comment reprsenter ces adresses au sein du P puisque les registres ne font que 16 bits soit 4 digits au maximum en hexadcimal. La solution adopte par Intel a t la suivante : Puisque avec 16 bits en peut adresser 2 octets = 65535 octets = 64 ko, La mmoire totale adressable de 1 Mo est fractionne en pages de 64 ko appels segments. On utilise alors deux registres pour adresser une case mmoire donne, Un registre pour adresser le segment qu'on appelle registre segment et un registre pour adresser l'intrieur du segment qu'on dsignera par registre d'adressage ou offset. Une adresse se prsente toujours sous la forme segment:offset A titre d'exemple, procdons au dcoupage de la mmoire en 16 segments qui ne se chevauche pas.

Considrons la case mmoire d'adresse 20350, appele adresse absolue ou adresse linaire. Cette case mmoire se situe dans le segment 2, son adresse relative ce segment est 350, on peut donc la rfrencer par le couple segment:offset = 20000:350, Se pose maintenant le problme de la reprsentation de cette adresse au sein du CPU car les registres de 16 bits ne peuvent contenir que 4 digits. S'il n'y a aucun problme pour reprsenter 350 dans un registre d'offset, on ne peut pas reprsenter 20000 dans un registre segment. La solution adopte par Intel est la suivante : Dans le registre segment, on crit l'adresse segment sans le chiffre de faible poids Dans le registre d'adressage (d'offset) on crit l'adresse relative dans le segment Pour calculer l'adresse absolue qui sera envoye sur le bus d'adresse de 20 bits, le CPU procde l'addition des deux registres aprs avoir dcal le registre segment d'un chiffre gauche :

Dans notre exemple, l'adresse de la case mmoire considre devient 2000:350 soit : Segment = 2000 Offset = 350 Ladresse dune case mmoire donne sous la forme dune quantit sur 20 bits (5 digits hexa) est appele adresse physique car elle correspond la valeur envoye rellement sur le bus dadresses A0 - A19. L'adresse (physique) absolue est calcule ainsi :

Le 8086 a accs 4 segments dont les adresses se trouvent dans les registres de segment CS, DS, SS et ES. Le segment de code contient les instructions du programme, le segment de donnes contient les donnes manipules par le

programme, le segment de pile contient la pile de sauvegarde et le segment supplmentaire peut aussi contenir des donnes. Le registre CS est associ au pointeur dinstruction IP, ainsi la prochaine instruction excuter se trouve ladresse logique CS : IP. De mme, les registres de segments DS et ES peuvent tre associs un registre dindex. Exemple : DS : SI, ES : DI. Le registre de segment de pile peut tre associ aux registres de pointeurs : SS : SP ou SS : BP.

Les registres 8086

AX : Accumulateur Usage gnral, Obligatoire pour la multiplication et la division, Ne peut pas servir pour l'adressage BX : Base Usage gnral, Adressage, (Par dfaut, son offset est relatif au segment DS) CX : Comptage et calcul Usage gnral, Utilis par certaines instruction comme compteur de rptition. Ne peut pas servir pour l'adressage DX : Data Usage gnral, Dans la multiplication et la division 16 bits, il sert comme extension au registre AX pour contenir un nombre 32 bits, Ne peut pas servir pour l'adressage 2.2.2 Les registres d'adressage (offset) Ces registres de 16 bits permettent l'adressage d'un oprande l'intrieur d'un segment de 64 ko (216 positions mmoires) SP : Pointeur de Pile Utilis pour l'accs la pile. Pointe sur la tte de la pile. Par dfaut, son offset est relatif SS BP : Pointeur de Base Adressage comme registre de base, (Par dfaut, son offset est relatif SS) Usage gnral SI : Registre d'index (source) Adressage comme registre dindex, (Par dfaut, son offset est relatif DS) Certaines instruction de dplacement de donns l'utilise comme index de l'oprande source. L'oprande destination tant index par DI Usage gnral DI : Registre d'index (destination) Adressage comme registre dindex, (par dfaut, son offset est relatif DS) Certaines instruction de dplacement de donns l'utilise comme index de l'oprande destination, l'oprande destination tant index par SI Les registres de segment Ces registrent sont combin avec les registres doffset pour former les adresses. Une case mmoire est repre par une adresse de la forme RS:RO. On place le registre segment au dbut dune zone mmoire de de 64Ko, ensuite on fait varier le registre

doffset qui prcise ladresse relative par rapport cette position. CS : Code Segment Dfinit le dbut de la mmoire programme. Les adresses des diffrentes instructions du programme sont relatives CS DS : Data Segment Dbut de la mmoire de donnes dans laquelle sont stockes toutes les donnes traites par le programme SS : Stack Segment Dbut de la pile. La pile est une zone mmoire gre dune faon particulire. Elle est organise comme une pile dassiettes. On pose et on retire les assiettes toujours sur le haut de la pile. Un seul registre dadresse suffit donc pour la grer, cest le stack pointer SP. On dit que cest une pile LIFO (Last IN, First Out). Empiler une donne : sauvegarder une donne sur (le sommet) de la pile Dpiler une donne : retirer une donne (du sommet) de la pile ES : Extra Segment Dbut d'un segment auxiliaire pour donnes Le registre d'tat (flags)

Six bits refltent les rsultats d'une opration arithmtique ou logique et 3 participent au control du processeur. C : (Carry) indique le dpassement de capacit de 1 sur une opration 8 bits ou 16 bits. Ce flag peut tre utilis par des instructions de saut conditionnel, des calculs arithmtique en chane ou dans des opration de rotation. P : (Parit) indique que le nombre de 1 est un nombre pair. Ce flag est utilis avec certains sauts conditionnels. A : (retenue Arithmtique) indique une retenue sur les 4 bits (digit) de poids faible. Par exemple quand la somme des 2 digits de poids faible dpasse F (15) Z : (Zro) Indique que le rsultat d'une opration arithmtique ou logique est nul. Il est utilis dans plusieurs instructions de sauts conditionnels. S : (Signe) reproduit le bit de poids fort d'une quantit signe sur 8 bits ou sur 16 bits. L'arithmtique signe fonctionne en complment 2. S=0 : positif, S=1 : ngatif. Ce flag sert lors de sauts conditionnels. T : (Trap) met le CPU en mode pas pas pour faciliter la recherche des dfauts d'excution. I : (Interruption) autorise ou non la reconnaissance des interruptions I=0 Interruptions autorises I=1 Interruptions non autorises

D : (Direction) fixe la direction de l'auto-inc/dcrmentation de SI et DI lors des instruction de manipulation de chanes. D=0 Incrmentation des index D=1 dcrmentation des index O : (Overflow) indique un dpassement de capacit quand on travaille avec des nombres signs. Comme par exemple si la somme de 2 nombres positifs donne un nombre ngatif ou inversement. (40h + 40h = 80h et O=1)