Vous êtes sur la page 1sur 31

Le Microprocesseur 8086

I. Architecture :
Comme nous lavons dj vue, un microprocesseur excute un programme en rptant les cycles suivants :
Cycle de recherche. Cycle dexcution.

Dans les microprocesseurs prcdents, ces tapes sont effectues une faon squentielle.

Le Microprocesseur 8086
Alors que larchitecture du 8086 ; pour effectuer les mmes tapes, alloue deux units de traitement : Les deux units peuvent fonctionner de faons indpendantes. Pendant que lunit de commande dcode linstruction prsente dans le registre dinstruction, lunit dinterface avec le Bus recherche linstruction suivante en mmoire.
Unit dexcution EU. Unit dinterface avec le Bus BIU.

Le Microprocesseur 8086

Le Microprocesseur 8086
1- Unit dexcution : EU Cette unit reoit les instructions de la file dattente, les dcode et les excute. Elle contient une unit arithmtique et logique 16 bits relis au indicateur dtat de CPU, un dcodeur dinstruction et elle manipule aussi les registres gnraux du CPU.

Le Microprocesseur 8086
2- Unit dinterface avec le Bus : BIU Son travail principal est de calculer les adresses relles sur 20 bits, et de charger le file dattente dinstruction. Cette unit anticipe la recherche des instructions en mmoire. Ce mcanisme danticipation permet dliminer les temps mort de recherche de linstruction suivante en mmoire.

Le Microprocesseur 8086
Registres gnraux Pointeurs Registres de segments

Le Microprocesseur 8086
3- Les registres gnraux :
AX, BX, CX, DX, SP, BP, SI, DI Ils servent contenir les oprandes arithmtiques et logiques. Les registres AX, BX, CX et DX peuvent tre considres comme des registres double de 8bits et peuvent donc tre utilis sur 8 ou 16 bits.
AX BX CX DX

Le Microprocesseur 8086
Certains des registres gnraux interviennent implicitement selon les instructions : AX et DX : interviennent pour toutes instructions de multiplication, de division et dentre/sortie. CX : est forcement utilis pour toutes les instructions de la boucle, de dcalage et de rptition.

Le Microprocesseur 8086
BX et BP : ont le titre de registres de bases, car ils sont souvent dsigns pour contenir ladresse de base dune structure de donnes en mmoire. (Exemple : ladresse de base dun tableau). SI et DI : sont appeles registres dindex puisquils ont souvent pour objet, de contenir un index qui sincrmente au fur et mesure de lexamen dun structure de donnes. SP : il a la fonction classique de pointeur de pile.

Le Microprocesseur 8086
4- Les registres de segments : CS, DS, SS, ES Les units centrales de la famille 8086 permettent un programme en cours dexcution, daccder immdiatement 4 segments de la mmoire. Les registres de segment sont utiliss pour identifier ces quatre segments (Le registre de segment pointe sur lorigine du segment).

Le Microprocesseur 8086
CS : registre de segment de code. DS :registre de segment de donnes. ES : registre de segment de donnes extra. SS :registre de segment de pile.

Le Microprocesseur 8086

Le Microprocesseur 8086
5- Le registre dindicateur :
a) Les indicateurs dtats: CF : Bit de retenue : indique quune retenue sest propage partir du bit le plus significatif dun oprande 8bits ou 16bits la suite de lexcution dune opration arithmtique. Dpassement de capacit de laccumulateur en cas daddition, passage en dessous de zro pour la soustraction. PF : Indicateur de parit : prend la valeur 1 si le rsultat dune opration contient un nombre pair de 1.

Le Microprocesseur 8086
AF : Indicateur de retenue auxiliaire : prend la valeur 1 pour indiquer quune retenue sest propage partir du bit 3 (utiliser DCB). ZF : bit de zro : prend la valeur 1 si le rsultat dune opration est nul.

Le Microprocesseur 8086
SF : bit de signe : prend la valeur 1 si le bit le plus significatif du rsultat dune opration est 1. OF : bit de dbordement de capacit : utilis en arithmtique sign, indique que le rsultat dune opration arithmtique est sortie de la gamme du systme de numration sign.

Le Microprocesseur 8086
b) Les Indicateurs de commandes :
TF : bit de mode pas pas : positionn 1, impose au processeur le mode dexcution en pas pas dans un but daide la mise au point des programmes. DF : bit de direction : DF contrle le sens dvolution dans une chane de donne. Si DF=1, il y a auto-dcrmentation des registres SI et DI. Et si DF=0, il y a auto-incrmentation dans ces registres.

Le Microprocesseur 8086
IF : bit de validation des interruptions : positionn 1, les interruptions externes du type INTR sont autorises.

Le Microprocesseur 8086
II. Notion de segment :
Un segment est un espace mmoire pouvant aller jusqu 65536 octets (64 koctets). 1- Segment de code : contient le code excutable du programme courant. Lorigine de ce segment sera place dans le registre de segment CS. CS : IP pointe toujours linstruction suivante excuter.

Le Microprocesseur 8086
2- Segment de donne : contient toutes les donnes courante du programme. Cest le segment source lors dune opration de traitement de chane de donnes. Lorigine de ce segment sera place dans le registre de segment DS. Le registre index combin avec ce registre cest le SI. DS : SI pointe toujours llment de la chane source (pour le cas des instructions de traitement de chane ).

Le Microprocesseur 8086
3- Segment de donne extra : cest le segment destination lors dune opration sur une chane de donne. Lorigine de ce segment est plac dans ES. Le registre indexe combin avec celui-ci est le DI. ES : DI pointe toujours llment de la chane destination (pour le cas des instructions de traitement de chane ).

Le Microprocesseur 8086
4- Segment de pile : contient toutes les informations stockes dans la pile. Lorigine de ce segment est place dans le registre SS. A ce registre de segment sera associs le pointeur de pile SP. SS : SP pointe toujours le dernier lment empil.

Le Microprocesseur 8086
III. Adressage de microprocesseur 8086 :
1- Les types dadresses : a) Adresse relle : ladresse relle est obtenue en dcalant le registre de segment de 4 positions binaires vers la gauche et en lui ajoutant loffset (dplacement). Le rsultat sera une adresse physique en mmoire sur 20 bits.

Le Microprocesseur 8086
b) Adresse effective : cest le dplacement relatif au dbut de segment physique (offset). c) Adresse logique : cette adresse est formule sur un double mot (1mot= 2 octets = 16bits). Le premier mot reprsente le segment. Le second mot, cest ladresse effective (offset). (Segment : offset) Exemple, CS:IP.

Le Microprocesseur 8086
2- Les modes dadressage :

a) Adressage immdiat : loprande trouve


dans la deuxime mot de linstruction.
BX4500 Exemple : MOV BX, 4500 ;

b) Adressage registre : loprande se trouve


dans un registre.
Exemple : MOV AX, BX ; AXBX

Le Microprocesseur 8086
c) Adressage direct : le dplacement qui
Exemple : MOV AL, [200h]

permet daccder loprande est contenu dans linstruction.

d) Adressage indirect : le dplacement qui


Exemple : MOV AL, [BX]

permet daccder loprande est contenu dans lun des registres SI, DI, BX, BP.

Le Microprocesseur 8086
e) Adressage Bas : Le dplacement qui
permet daccder loprande est gale la somme du dplacement mentionn dans linstruction et du contenu du registre de base BX ou BP. permet daccder loprande est gale la somme du dplacement mentionn dans linstruction et du contenue de registre dindex de SI ou DI.

Exemple : MOV CL, [BX+40]

f) Adressage Index : Le dplacement qui

Exemple : MOV AL, [SI+200h].

Le Microprocesseur 8086
g) Adressage Bas Index : Le dplacement
qui permet daccder loprande est gale la somme de contenue de registre de base, de contenue de registre dindex et de dplacement mentionn dans linstruction. Ce mode dadressage est surtout intressant pour accder llment dune matrice o un tableau bidimensionnel.

Exemple : MOV AL, [BX+SI+40h].

Le Microprocesseur 8086
h) Adressage de Chane : Ladressage de
chane fait implicitement appelle aux index SI pour la source et DI pour le destinataire.

Exemple: MOVSB MOVSW

Le Microprocesseur 8086
i) Adressage des Entres Sorties : Ladressage se
fait de deux manires : Adressage direct : (utilis si adr.port<FFh) Ladresse du port est contenu dans le deuxime octet de linstruction. Le transfert de la donne se fait entre le port et AX dans le cas des mots, le port et AL dans le cas des octets.
OUT 42h, AL

Exemple: IN AX, 40h

Le Microprocesseur 8086
Adressage par registre : Ladresse du port est contenu dans le registre DX. Le transfert de la donne se fait entre le port et AX pour le cas des mots, le port et AL dans le cas des octets.

Exemple :

MOV DX,300h MOV DX,378h IN AL, DX OUT DX, AL

Le Microprocesseur 8086
j) Adressage de Pile : Le sommet de la pile est point par le registre SP dans le segment de la pile qui est point par le SS. Les donnes empiler ou dpiler sont uniquement des mots. La provenance ou la destination est un registre ou un emplacement mmoire. Le SP est dcrmente de 2 chaque empilement et incrmente de 2 chaque dpilement.