You are on page 1of 21

CHAPITRE III LE MICROPROCESSEUR INTEL 8086

Description physique du 8086


Le microprocesseur Intel 8086 est un microprocesseur 16 bits, apparu en 1978. Cest le premier
microprocesseur de la famille Intel 80x86 (8086, 80186, 80286, 80386, 80486, Pentium, ...). Il se

prsente sous la forme dun botier DIP (Dual In-line Package) 40 broches :

Architecture et Microprocesseur

Schma fonctionnel du 8086

Architecture et Microprocesseur

Description et utilisation des signaux du 8086


CLK : entre du signal dhorloge qui cadence le fonctionnement du microprocesseur. Ce signal provient dun gnrateur dhorloge : le 8284. RESET : entre de remise zro du microprocesseur. Lorsque cette entre est mise ltat haut pendant au moins 4 priodes dhorloge, le microprocesseur est rinitialis : il va excuter linstruction se trouvant ladresse FFFF0H (adresse de bootstrap). Le signal de RESET est fourni par le gnrateur dhorloge.
READY : entre de synchronisation avec la mmoire. Ce signal provient galement du gnrateur

dhorloge. TEST : entre de mise en attente du microprocesseur dun vnement extrieur.


INTA : indique que le microprocesseur accepte linterruption.
Architecture et Microprocesseur 3

HOLD et HLDA : signaux de demande daccord daccs direct la mmoire (DMA). NMI et INTR : entres de demande dinterruption. o INTR : interruption normale. o NMI (Non Maskable Interrupt) : interruption prioritaire.
S0 S7 : signaux dtat indiquant le type dopration en cours sur le bus.

A16/S3 A19/S6 : 4 bits de poids fort du bus dadresses, multiplexs avec 4 bits dtat. AD0 AD15 : 16 bits de poids faible du bus dadresses, multiplexs avec 16 bits de donnes. Le bus A/D est multiplex (multiplexage temporel) do la ncessit dun dmultiplexage pour obtenir sparment les bus dadresses et de donnes :
o 16 bits de donnes (microprocesseur 16 bits) ;

o 20 bits dadresses, do 220 = 1 Mo despace mmoire adressable par le 8086.

Architecture et Microprocesseur

MN/MX : entre de choix du mode de fonctionnement du microprocesseur : o mode minimum (MN/MX = 1) : le 8086 fonctionne de manire autonome, il gnre luimme le bus de commande (RD, WR, ...) ; o mode maximum (MN/MX = 0) : ces signaux de commande sont produits par un contrleur
de bus, le 8288. Ce mode permet de raliser des systmes multiprocesseurs.

Chronogramme du bus A/D Le dmultiplexage des signaux AD0 AD15 (ou A16/S3 A19/S6) se fait en
mmorisant ladresse lorsque celle-ci

est prsente sur le bus A/D, laide dun verrou D. (latch), La ensemble commande de de bascules

mmorisation de ladresse est gnre


par le microprocesseur : signal ALE

(Address Latch Enable).

Architecture et Microprocesseur

Circuit de dmultiplexage A/D o si ALE = 1, le verrou est transparent (Q = D) ; o si ALE = 0, mmorisation de la dernire valeur de
D sur les sorties Q;

o les signaux de lecture (RD) ou dcriture (WR) ne sont gnrs par le microprocesseur que lorsque les donnes sont prsentes sur le bus A/D.

Exemples de bascules D : circuits 8282, 74373, 74573.

Architecture et Microprocesseur

RD : signal de lecture dune donne. WR : signal dcriture dune donne.


M/IO : (Memory/Input-Output) indique si le 8086 adresse la mmoire (M/IO = 1) ou les

entres/sorties (M/IO = 0). DEN : (Data Enable) indique que des donnes sont en train de circuler sur le bus A/D (quivalent de ALE pour les donnes). DT/R : (Data Transmit/Receive) indique le sens de transfert des donnes : o DT/R = 1 : donnes mises par le microprocesseur (criture) ;
o DT/R = 0 : donnes reues par le microprocesseur

(lecture).

Architecture et Microprocesseur

Les signaux DEN et DT/R sont utiliss pour la

commande de tampons de bus (buffers) permettant damplifier le courant fourni par le microprocesseur sur le bus de donnes. Exemples de tampons de bus : circuits transmetteurs
bidirectionnels 8286 ou 74245.

BHE : (Bus High Enable) signal de lecture de loctet de poids fort du bus de donnes. Le 8086 possde un bus dadresses sur 20 bits, do la capacit dadressage de 1 Mo ou 512 Kmots de 16 bits (bus de donnes sur 16 bits). Le mga-octet adressable est divis en deux banques de 512 Ko
chacune : la banque infrieure (ou paire) et la banque suprieure

(ou impaire).

Architecture et Microprocesseur

Ces deux banques sont slectionnes par : o A0 pour la banque paire qui contient les octets de poids faible ; o BHE pour la banque impaire qui contient les octets de poids fort. Seuls les bits A1 A19 servent dsigner une case mmoire dans chaque banque de 512 Ko. Le microprocesseur peut ainsi lire et crire des donnes sur 8 bits ou sur 16 bits : BHE 0 0 1
1

A0 0 1 0
1

Octets transfrs Les deux octets (mot complet) Octet fort (adresse impaire) Octet faible (adresse paire)
Aucun octet

Remarque : le 8086 ne peut lire une donne sur 16 bits en une seule fois, uniquement si loctet de

poids fort de cette donne est rang une adresse impaire et loctet de poids faible une adresse paire (alignement sur les adresses paires), sinon la lecture de cette donne doit se faire en deux oprations successives, do une augmentation du temps dexcution du transfert d un mauvais alignement des donnes.
Architecture et Microprocesseur 9

Ralisation des deux banques avec plusieurs botiers mmoire :

Architecture et Microprocesseur

10

Cration du bus systme du 8086 :

Architecture et Microprocesseur

11

Organisation interne du 8086


Le 8086 est constitu de deux units
fonctionnant en parallle :

o lunit dexcution (EU : Execution Unit) ; o lunit dinterface de bus (BIU : Bus Interface Unit).
Rle des deux units :

o lunit dinterface de bus (BIU) recherche les instructions en mmoire et les range dans une file dattente ; o lunit dexcution (EU) excute les
instructions contenues dans la file dattente.

Les deux units fonctionnent simultanment, do une acclration du processus dexcution dun programme.
Architecture et Microprocesseur 12

Le microprocesseur 8086 contient 14 registres rpartis en 4 groupes :


Registres gnraux : 4 registres sur 16 bits.

o AX = (AH,AL) o BX = (BH,BL) o CX = (CH,CL) o DX = (DH,DL). Ils peuvent tre galement considrs comme 8 registres sur 8 bits. Ils servent contenir temporairement des donnes. Ce sont des registres gnraux mais ils peuvent tre utiliss pour des oprations particulires. Exemple : AX = accumulateur, CX = compteur. Registres de pointeurs et dindex : 4 registres sur 16 bits.
Pointeurs :

o SP (Stack Pointer) : pointeur de pile (la pile est une zone de sauvegarde de donnes en cours dexcution dun programme) ; o BP (Base Pointer) : pointeur de base, utilis pour adresser des donnes sur la pile.
Architecture et Microprocesseur 13

Index : o SI : Source Index ; o DI : Destination Index. Ils sont utiliss pour les transferts de chanes doctets entre deux zones mmoire.
Les pointeurs et les index contiennent des adresses de cases mmoire. Pointeur dinstruction et indicateurs (flags) : 2 registres sur 16 bits.

o Pointeur dinstruction (IP) contient ladresse de la prochaine instruction excuter. o Flags : CF : indicateur de retenue (carry) ; PF : indicateur de parit; AF : indicateur de retenue auxiliaire ; ZF : indicateur de zro ; SF : indicateur de signe ; TF : indicateur dexcution pas pas (trap) ; IF : indicateur dautorisation dinterruption ; DF : indicateur de dcrmentation ; OF : indicateur de dpassement (overflow).

Architecture et Microprocesseur

14

Registres de segments : 4 registres sur 16 bits.


o CS (Code Segment) : registre de segment de code ;

o DS (Data Segment) : registre de segment de donnes ; o SS (Stack Segment) : registre de segment de pile ; o ES (Extra Segment) : registre de segment supplmentaire pour les donnes ; Les registres de segments, associs aux pointeurs et aux index, permettent au microprocesseur 8086 dadresser lensemble de la mmoire.

Architecture et Microprocesseur

15

Gestion de la mmoire par le 8086


Lespace mmoire adressable par le 8086 est de 220 = 1 Mo (20 bits dadresses). Cet espace est divis en segments. Un segment est une zone mmoire de 64 Ko dfinie par son adresse de dpart qui doit tre un multiple de 16. Dans une telle adresse, les 4 bits de poids faible sont zro. On peut
donc reprsenter ladresse dun segment avec seulement ses 16 bits de poids fort, les 4 bits de poids

faible tant implicitement 0. Pour dsigner une case mmoire parmi les 216 contenues
dans un segment, il suffit dune valeur sur 16 bits. Ainsi,

une case mmoire est repre par le 8086 au moyen de deux quantits sur 16 bits : o ladresse dun segment ; o un dplacement ou offset (appel aussi adresse effective) dans ce segment. Cette mthode de gestion de la mmoire est appele
segmentation de la mmoire.
Architecture et Microprocesseur 16

La donne dun couple (segment, offset) dfinit une adresse logique, note sous la forme segment : offset. Ladresse dune case mmoire donne sous la forme dune quantit sur 20 bits est appele adresse
physique car elle correspond la valeur envoye rellement sur le bus dadresses A0 - A19.

Correspondance entre adresse logique et adresse physique :

Ainsi, ladresse physique se calcule par lexpression :

adresse physique = 16 segment + offset car le fait dinjecter 4 zros en poids faible du segment revient effectuer un dcalage de 4 positions vers la gauche, cest dire une multiplication par 24.
Architecture et Microprocesseur 17

A un instant donn, le 8086 a accs 4 segments dont les adresses se trouvent dans les registres de segment CS, DS, SS et ES :
o Le segment de code contient les instructions du

programme, o le segment de donnes contient les donnes manipules par le programme, o le segment de pile contient la pile de sauvegarde,
o 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.
Architecture et Microprocesseur 18

Mmoire accessible par le 8086 un instant donn :

Remarque : les segments ne sont pas ncessairement distincts les uns des autres, ils peuvent se chevaucher ou se recouvrir compltement.
Architecture et Microprocesseur 19

Le nombre de segments utilis dfinit le modle mmoire du programme. Contenu des registres aprs un RESET du microprocesseur :
IP = 0000H

CS = FFFFH DS = 0000H ES = 0000H SS = 0000H


Puisque CS contient la valeur FFFFH et IP la valeur 0000H, la 1re instruction excute par le 8086 se

trouve donc ladresse logique FFFFH : 0000H, correspondant ladresse physique FFFF0H (bootstrap). Cette instruction est gnralement un saut vers le programme principal qui initialise ensuite les autres registres de segment.
Architecture et Microprocesseur 20

You might also like