Vous êtes sur la page 1sur 14

Chapitre 4 Le microprocesseur Intel 8086

4.1 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 bo tier DIP (Dual In-line Package) ` e a 40 broches :
GND AD14 AD13 AD12 AD11 AD10 AD9 AD8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 8086 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 VCC AD15 A16/S3 A17/S4 A18/S5 A19/S6 BHE/S7 MN/MX RD HOLD HLDA WR M/IO DT/R DEN ALE INTA TEST READY RESET (S2) (S1) (S0) (QS0) (QS1) (RQ/GT0) (RQ/GT1) (mode maximum)

HAGG ` GE, 2003 E

cours de microprocesseur

ISET Rad`s e

20

Chapitre 4 - Le microprocesseur Intel 8086

4.2

Schma fonctionnel du 8086 e


alimentation VCC GND

horloge

CLK RESET

A19 A16 AD15 8086 AD0 WR bus d'adresses/ donnes

contrle du microprocesseur

READY MN/MX TEST

INTA interruptions NMI INTR

RD M/IO ALE BHE DEN signaux de contrle

HOLD DMA DT/R HLDA S0 S7 signaux d'tat

4.3

Description et utilisation des signaux du 8086

CLK : entre du signal dhorloge qui cadence le fonctionnement du microprocesseur. Ce e signal provient dun g n rateur dhorloge : le 8284. e e
4,77 MHz quartz 14,318 MHz 8284 CLK READY 8086 RESET gnrateur d'horloge
ISET Rad`s e cours de microprocesseur HAGG ` GE, 2003 E

4.3 - Description et utilisation des signaux du 8086

21

RESET : entre de remise ` z ro du microprocesseur. Lorsque cette entre est mise ` e a e e a l tat haut pendant au moins 4 p riodes dhorloge, le microprocesseur est r initialis : il e e e e va ex cuter linstruction se trouvant ` ladresse FFFF0H (adresse de bootstrap). Le signal e a de RESET est fourni par le gn rateur dhorloge. e e READY : entre de synchronisation avec la m moire. Ce signal provient galement du e e e g n rateur dhorloge. e e TEST : entre de mise en attente du microprocesseur dun vnement ext rieur. e e e e MN/MX : entre de choix du mode de fonctionnement du microprocesseur : e

mode minimum (MN/MX = 1) : le 8086 fonctionne de mani`re autonome, il gn`re e e e lui-meme le bus de commande (RD, WR, ...) ;

mode maximum (MN/MX = 0) : ces signaux de commande sont produits par un cont oleur de bus, le 8288. Ce mode permet de raliser des syst`mes multiprocese e seurs.

NMI et INTR : entres de demande dinterruption. INTR : interruption normale, NMI e (Non Maskable Interrupt) : interruption prioritaire. INTA : Interrupt Acknowledge, indique que le microprocesseur accepte linterruption. HOLD et HLDA : signaux de demande daccord dacc`s direct ` la m moire (DMA). e a e S0 ` S7 : signaux d tat indiquant le type dop ration en cours sur le bus. a e e A16/S3 ` A19/S6 : 4 bits de poids fort du bus dadresses, multiplexs avec 4 bits a e d tat. e AD0 ` AD15 : 16 bits de poids faible du bus dadresses, multiplexs avec 16 bits de a e donnes. Le bus A/D est multiplex (multiplexage temporel) do` la ncessit dun e e u e e d multiplexage pour obtenir s par ment les bus dadresses et de donnes : e e e e

16 bits de donnes (microprocesseur 16 bits) ; e

20 bits dadresses, do` 220 = 1 Mo despace m moire adressable par le 8086. u e

Chronogramme du bus A/D :


HAGG ` GE, 2003 E cours de microprocesseur ISET Rad`s e

22
1 cycle de bus T1 CLK T2 T3

Chapitre 4 - Le microprocesseur Intel 8086

T4

T1

T2

T3

T4

ADi

adresse

donne

adresse

donne

ALE lecture RD criture WR

Le dmultiplexage des signaux AD0 ` AD15 (ou A16/S3 ` A19/S6) se fait en m morisant e a a e ladresse lorsque celle-ci est prsente sur le bus A/D, ` laide dun verrou (latch), ene a semble de bascules D. La commande de m morisation de ladresse est gn re par le e e ee microprocesseur : cest le signal ALE, Address Latch Enable. Circuit de dmultiplexage A/D : e
LATCH ALE bus d'adresses 8086 H Q D x 20 A0 - A19 bus de donnes 20 AD0 - AD15 A16/S3 - A19/S6 D0 - D15 S3 -S6

Fonctionnement : si ALE = 1, le verrou est transparent (Q = D) ; si ALE = 0, m morisation de la derni`re valeur de D sur les sorties Q ; e e les signaux de lecture (RD) ou d criture (WR) ne sont gn rs par le microprocese e ee e e seur que lorsque les donnes sont prsentes sur le bus A/D.
ISET Rad`s e cours de microprocesseur HAGG ` GE, 2003 E

4.3 - Description et utilisation des signaux du 8086 Exemples de bascules D : circuits 8282, 74373, 74573.

23

AD0 - AD7 ou AD8 - AD15 ou A16/S3 - A19/S6 ALE

D0 D1 8282 D7 STROBE OE

Q0 Q1

Q7

A0 - A7 ou A8 - A15 ou A16 - A19

RD : Read, signal de lecture dune donne. e WR : Write, signal d criture dune donne. e e M/IO : Memory/Input-Output, indique si le 8086 adresse la m moire (M/IO = 1) ou les e entr es/sorties (M/IO = 0). e DEN : Data Enable, indique que des donnes sont en train de circuler sur le bus A/D e ( quivalent de ALE pour les donnes). e e DT/R : Data Transmit/Receive, indique le sens de transfert des donnes : e DT/R = 1 : donnes mises par le microprocesseur ( criture) ; e e e DT/R = 0 : donnes re ues par le microprocesseur (lecture). e c
1 cycle de bus T1 CLK T2 T3 T4

ADi

adresse

donne

ALE

DEN criture DT/R lecture

Les signaux DEN et DT/R sont utiliss pour la commande de tampons de bus (bu ers) e permettant dampli er le courant fourni par le microprocesseur sur le bus de donnes. e
HAGG ` GE, 2003 E cours de microprocesseur ISET Rad`s e

24

Chapitre 4 - Le microprocesseur Intel 8086

Exemples de tampons de bus : circuits transmetteurs bidirectionnels 8286 ou 74245.


A0 A1 AD0 - AD7 ou AD8 - AD15 commande du sens de transfert DT/R validation du transfert DEN A7 DIR EN 8286 D0 - D7 ou D8 - D15 x8 B7 lignes de donnes bufferises B0 B1

BHE : Bus High Enable, signal de lecture de loctet de poids fort du bus de donnes. e Le 8086 poss`de un bus dadresses sur 20 bits, do` la capacit dadressage de 1 Mo ou e u e 512 Kmots de 16 bits (bus de donnes sur 16 bits). e Le mga-octet adressable est divis en deux banques de 512 Ko chacune : la banque e e inf rieure (ou paire) et la banque sup rieure (ou impaire). Ces deux banques sont e e s lectionnes par : e e A0 pour la banque paire qui contient les octets de poids faible ; BHE pour la banque impaire qui contient les octets de poids fort.
A1 - A19 bus d'adresses

A1 A0 A2 A1

D0 D0 D1 D1 banque paire D7 D7

A19 A18 A0 CS A1 A0 A2 A1 D0 D8 D1 D9 banque impaire D7 D15 A19 A18 BHE D0 - D15 bus de donnes
ISET Rad`s e cours de microprocesseur HAGG ` GE, 2003 E

CS

4.3 - Description et utilisation des signaux du 8086

25

Seuls les bits A1 ` A19 servent ` d signer une case m moire dans chaque banque de a a e e 512 Ko. Le microprocesseur peut ainsi lire et crire des donnes sur 8 bits ou sur 16 bits : e e BHE A0 0 0 0 1 1 0 1 1 octets transf rs ee 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 e loctet de poids fort de cette donne est rang ` une adresse impaire et loctet de poids e e a faible ` une adresse paire (alignement sur les adresses paires), sinon la lecture de cette a donne doit se faire en deux op rations successives, do` une augmentation du temps e e u dex cution du transfert du ` un mauvais alignement des donnes. e a e R alisation des deux banques avec plusieurs bo tiers m moire : e e
bus d'adresses A1 - A19

A1 A0 A2 A1 64 K x 8

D0 D0 D1 D1 D7 D7

A16 A15 A17 A A18 B A19 C A0


Y0 Y1 Y2 Y3 74138 Y4 Y5 Y6 EN Y7

CS A1 A0 A2 A1 64 K x 8 D7 A16 A15 CS D7 D0 D0 D1 D1

banque paire

A1 A0 A2 A1 64 K x 8

D0 D8 D9 D1 D7 D15

A16 A15 A17 A A18 B A19 C BHE


Y0 Y1 Y2 Y3 74138 Y4 Y5 Y6 EN Y7

CS A1 A0 A2 A1 64 K x 8 D7 D15 A16 A15 CS bus de donnes D0 - D15 D0 D8 D1 D9

banque impaire

HAGG ` GE, 2003 E

cours de microprocesseur

ISET Rad`s e

26 Cr ation du bus syst`me du 8086 : e e

Chapitre 4 - Le microprocesseur Intel 8086

CLK 8284 RESET READY

BHE/S7 A19/S6 A16/S3 AD0 AD15 8086

8282 D STR Q

BHE A19 A16

8282 D STR 8282 D STR Q Q

A15 A8

WR RD M/IO

ALE DEN DT/R

A7 A0

8286

D15 D8

EN DIR D7 D0

A 8286 EN DIR

M/IO RD WR

4.4

Organisation interne du 8086

Le 8086 est constitu de deux units fonctionnant en parall`le : e e e lunit dex cution (EU : Execution Unit) ; e e lunit dinterface de bus (BIU : Bus Interface Unit). e
ISET Rad`s e cours de microprocesseur HAGG ` GE, 2003 E

4.4 - Organisation interne du 8086


8 bits AH registres gnraux BH BL CH CL pointeurs et index DH SI DI DL 8 bits AL = AX = BX = CX = DX 16 bits 16 bits DS SS CS ES IP registres de segments

27

pointeur d'instruction

bus de donnes interne

16

gnration d'adresses et contrle de bus

bus externe A/D multiplex + bus de contrle

registres temporaires

1 2 3 4 5 6 commandes de l'unit d'excution

file d'attente des instructions (6 octets)

UAL

indicateurs UNITE D'EXECUTION (EU) UNITE D'INTERFACE DE BUS (BIU)

ole des deux units : e lunit dinterface de bus (BIU) recherche les instructions en m moire et les range e e dans une le dattente ; lunit dex cution (EU) ex cute les instructions contenues dans la le dattente. e e e Les deux units fonctionnent simultanment, do` une acc l ration du processus dex cution e e u ee e dun programme (fonctionnement selon le principe du pipe-line). Le microprocesseur 8086 contient 14 registres r partis en 4 groupes : e Registres gn raux : 4 registres sur 16 bits. e e
HAGG ` GE, 2003 E cours de microprocesseur ISET Rad`s e

28 AX = (AH,AL) ; BX = (BH,BL) ; CX = (CH,CL) ; DX = (DH,DL).

Chapitre 4 - Le microprocesseur Intel 8086

Ils peuvent etre galement consid rs comme 8 registres sur 8 bits. Ils servent ` contee ee a nir temporairement des donnes. Ce sont des registres gn raux mais ils peuvent e e e etre utiliss pour des op rations particuli`res. Exemple : AX = accumulateur, CX e e e = compteur. Registres de pointeurs et dindex : 4 registres sur 16 bits. Pointeurs : SP : Stack Pointer, pointeur de pile (la pile est une zone de sauvegarde de donnes en cours dex cution dun programme) ; e e BP : Base Pointer, pointeur de base, utilis pour adresser des donnes sur e e la pile. Index : SI : Source Index ; DI : Destination Index. Ils sont utiliss pour les transferts de cha nes doctets entre deux zones e m moire. e Les pointeurs et les index contiennent des adresses de cases m moire. e Pointeur dinstruction et indicateurs ( ags) : 2 registres sur 16 bits. Pointeur dinstruction : IP, contient ladresse de la prochaine instruction ` ex cuter. a e Flags :

O D I T 15 14 13 12 11 10 9 8 CF : indicateur de retenue (carry) ; PF : indicateur de parit ; e AF : indicateur de retenue auxiliaire ; ZF : indicateur de zro ; e

S 7

Z 6 5

A 4

P 2

C 0

SF : indicateur de signe ; TF : indicateur dex cution pas ` pas (trap) ; e a IF : indicateur dautorisation dinterruption ; DF : indicateur de dcrmentation ; e e OF : indicateur de dpassement (ove ow). e Registres de segments : 4 registres sur 16 bits. CS : Code Segment, registre de segment de code ;
ISET Rad`s e cours de microprocesseur HAGG ` GE, 2003 E

4.5 - Gestion de la m moire par le 8086 e

29

DS : Data Segment, registre de segment de donnes ; e SS : Stack Segment, registre de segment de pile ; ES : Extra Segment, registre de segment supplmentaire pour les donnes ; Les e e registres de segments, associs aux pointeurs et aux index, permettent au mie croprocesseur 8086 dadresser lensemble de la m moire. e

4.5

Gestion de la m moire par le 8086 e

Lespace m moire adressable par le 8086 est de 220 = 1 048 576 octets = 1 Mo (20 bits e dadresses). Cet espace est divis en segments. Un segment est une zone m moire de e e 64 Ko (65 536 octets) d nie par son adresse de d part qui doit etre un multiple de 16. e Dans une telle adresse, les 4 bits de poids faible sont ` z ro. On peut donc reprsenter a e e ladresse dun segment avec seulement ses 16 bits de poids fort, les 4 bits de poids faible e tant implicitement ` 0. a Pour d signer une case m moire parmi les 216 = 65 536 contenues dans un segment, il e e su t dune valeur sur 16 bits. Ainsi, une case m moire est rep re par le 8086 au moyen de deux quantits sur 16 bits : e ee e ladresse dun segment ; un dplacement ou o set (appel aussi adresse e ective) dans ce segment. e e Cette m thode de gestion de la m moire est appele segmentation de la m moire. e e e e 1 Mo FFFFFH

un segment (64 Ko)

case mmoire offset adresse multiple de 16

00000H

La donne dun couple (segment,o set) d nit une adresse logique, note sous la forme e e segment : o set. Ladresse dune case m moire donne sous la forme dune quantit sur 20 bits (5 digits e e e hexa) est appele adresse physique car elle correspond ` la valeur envoye r ellement e a e e sur le bus dadresses A0 - A19.
HAGG ` GE, 2003 E cours de microprocesseur ISET Rad`s e

30

Chapitre 4 - Le microprocesseur Intel 8086

Correspondance entre adresse logique et adresse physique :

16 bits segment 20 bits + offset

4 bits 0000

16 bits adresse physique 20 bits Ainsi, ladresse physique se calcule par lexpression :
adresse physique = 16 segment + o set car le fait dinjecter 4 zros en poids faible du segment revient ` e ectuer un dcalage de e a e 4 positions vers la gauche, cest ` dire une multiplication par 24 = 16. a A un instant donn, le 8086 a acc`s ` 4 segments dont les adresses se trouvent dans les e e a registres de segment CS, DS, SS et ES. Le segment de code contient les instructions du programme, le segment de donnes contient les donn es manipules par le programme, le e e e segment de pile contient la pile de sauvegarde et le segment supplmentaire peut aussi e contenir des donnes. e Le registre CS est associ au pointeur dinstruction IP, ainsi la prochaine instruction ` e a a ex cuter se trouve ` ladresse logique CS : IP. e

1 Mo

FFFFFH

instruction excuter segment de code offset = IP CS : IP CS : 0000H

0
ISET Rad`s e

00000H
cours de microprocesseur HAGG ` GE, 2003 E

4.5 - Gestion de la m moire par le 8086 e

31

De meme, les registres de segments DS et ES peuvent etre associs ` un registre dindex. e a Exemple : DS : SI, ES : DI. Le registre de segment de pile peut etre associ aux registres e de pointeurs : SS : SP ou SS : BP. M moire accessible par le 8086 ` un instant donn : e a e 1 Mo extra segment FFFFFH ES : DI offset = DI ES : 0000H

segment de pile

offset = SP

SS : SP SS : 0000H

segment de donnes

DS : SI offset = SI DS : 0000H

segment de code 0

offset = IP

CS : IP CS : 0000H 00000H

Remarque : les segments ne sont pas ncessairement distincts les uns des autres, ils e peuvent se chevaucher ou se recouvrir compl` tement. e
1 Mo segment de pile segment de donnes segment de code SS : 0000H DS : 0000H CS : 0000H 0 00000H FFFFFH 1 Mo FFFFFH

segment de code, de donnes et de pile

CS : 0000H DS : 0000H SS : 0000H

00000H

Le nombre de segments utilis d nit le mod`le m moire du programme. e e e


HAGG ` GE, 2003 E cours de microprocesseur ISET Rad`s e

32

Chapitre 4 - Le microprocesseur Intel 8086

Contenu des registres apr`s un RESET du microprocesseur : e IP = 0000H CS = FFFFH DS = 0000H ES = 0000H SS = 0000H Puisque CS contient la valeur FFFFH et IP ex cute par le 8086 se trouve donc ` ladresse e e a ladresse physique FFFF0H (bootstrap). Cette le programme principal qui initialise ensuite les la valeur 0000H, la premi`re instruction e logique FFFFH : 0000H, correspondant ` a instruction est gn ralement un saut vers e e autres registres de segment.

4.6

Le microprocesseur 8088

Le microprocesseur 8088 est identique au 8086 sauf que son bus de donnes externe est e sur 8 bits au lieu de 16 bits, le bus de donnes interne restant sur 16 bits. e Le 8088 a t produit par Intel apr`s le 8086 pour assurer la compatibilit avec des circuits ee e e p riph riques d j` existant, fabriqus pour les microprocesseurs 8 bits 8080 et 8085. e e ea e Di rences avec le 8086 : e les broches AD8 ` AD15 deviennent A8 ` A15 (bus de donnes sur 8 bits) ; a a e la broche BHE nexiste pas dans le 8088 car il ny a pas doctet de poids fort sur le bus de donnes ; e la broche M/IO devient IO/M pour la compatibilit avec danciens circuits dE/S. e Au niveau de larchitecture interne, pas de di rences avec le 8086 sauf que la le dattente e des instructions passe de 6 ` 4 octets. a

ISET Rad`s e

cours de microprocesseur

HAGG ` GE, 2003 E

Vous aimerez peut-être aussi