You are on page 1of 8

UniversitKasdiMerbahOuargla

FacultdesSciencesAppliques
DpartementGnieElectrique
3meAnneLicenceenCommandeElectrique

Module:Microprocesseur

Chapitre 2:

Architecture Interne du Microprocesseur Intel 8086

2.1 Introduction
L'Intel8086(galementappeliAPX86)estunmicroprocesseurCISC16bitsfabriqupar
Intel partir de 1978. C'est le premier processeur de la famille x86, qui est devenue
l'architecture de processeur la plus rpandue dans le monde des ordinateurs personnels,
stationsdetravailetserveursinformatiques.
Ilfutlancenmai1978.Ilestbassurdesregistres16bits,etdisposed'unbusexterne
dedonnesde16bits(D0D15)etd'unbusd'adressede20bits(A0A19),quiluipermet
d'adresser1Mo.Ilcontient29000transistorsgravsen3m.Sapuissancedecalculvariede
0,33MIPS(lorsqu'ilestcadenc4,77MHzcommedansl'IBMPC)jusqu'0,75MIPSpourla
version10MHz.
Le processeur 8086 d'Intel est la base des processeurs Pentium. Les processeurs
successifs(dePC)sesonteneffetconstruitspetitpetitenajoutantchaqueprocesseurs
desinstructionsetdesfonctionnalitssupplmentaires,maisenconservantchaque
foislesspcificitsduprocesseurprcdent.Cestcettefaondadapterlesprocesseurs
chaquetapequipermetunancienprogrammecritpourun8086defonctionnersurun
nouvelordinateurquipd'unPentiumIV.
2.2 Architectureexternedu8086
IlseprsentesouslaformedunbotierDIP(DualInlinePackage)40broches(figure1).

Figure1:Le8086.

ArchitectureInterneduMicroprocesseurIntel8086

2.3 Caractristiquesdu8086
Lemicroprocesseuri8086secaractrisepar:

Structure16bits.
Capacitd'adressagede1Mo.
14registresinternesde16bits.
7modesd'adressage.
Oprationssurdesbits,desoctets,desmotsetdeschanesdecaractres.
Arithmtiquesigneounonsigne.
ArithmtiquebinaireouBCD,sur8ou16bits.

2.4 Architectureinternedu8086
Le8086secomposededeuxunitsdetraitementspares:l'unitd'interfacedebus
(UIB) et l'unit d'excution (UE). Les deux units fonctionnent simultanment, do une
acclrationduprocessusdexcutiondunprogramme(fonctionnementselonleprincipedu
pipeline).
L'unitd'excutioncomportel'UAL,lesregistresgnraux(AX,BX,CX,DX),lesregistres
d'adressage(SP,BP,SI,DI),leregistred'tat(Flags)etledcodeurd'instructions.
L'unitd'interfacedebus(UIB)comporteunefiled'attented'instructionsgreenFIFO
(FirstInFirstOut),lesregistresdesegments(CS,DS,SS,ES)etlepointeurd'instruction(IP).

Figure2:Architectureinternedu8086.

2.5 FonctionsdelUIB(Unitd'InterfacedeBus)

Elle cherche les instructions excuter dans la mmoire et les stocke dans la file
d'attenteFIFO.
2

Module:Microprocesseur

Ellecalculelesadressesphysiquessur20bits.
Elleraliseletransfertdesdonnesaveclammoire.

2.6 FonctionsdelUE(UnitdExcution)

Elleextraitlescodesdesinstructionspartirdelafiled'attenteetlesexcute.
EllefournitlesadressesdesoprandeslUIBennommantlesegmentconcerneten
fournissantledplacementdanscesegment.

2.7 Lesregistresdu8086
Lejeuderegistrescontientl'ensembledesregistresdumicroprocesseur.Unregistreest
une petite partie de mmoire intgre au microprocesseur, dans le but de recevoir des
informations spcifiques, notamment des adresses et des donnes stockes durant
l'excutiond'unprogramme.
Ilexisteplusieurstypesderegistres.Certainsd'entreeuxsontaffectsdesoprations
d'ordregnraletsontaccessiblesauprogrammeurtoutmoment.Nousdisonsalorsqu'il
s'agit de registres gnraux. D'autres registres ont des rles bien plus spcifiques et ne
peuventpasservirunusagenonspcialis.
2.7.1 Lesregistresgnraux
Lesregistresgnrauxpeuventtreutilissdanstouteslesoprationsarithmtiqueset
logiquesqueleprogrammeurinsredanslecodeassembleur.Unregistrecompletprsente
unegrandeurde16bits.Commelemontrelafigure3,chaqueregistreestenralitdivisen
deuxregistresdistinctsde8bits.Decettefaon,nouspouvonsutiliserunepartieduregistre
sinousdsironsystockerunevaleurn'excdantpas8bits.Si,aucontraire,lavaleurque
nousdsironsyrangerexcde8bits,nousutiliseronsleregistrecomplet,c'estdire16bits.
Le programmeur dispose de 8 registres internes de 16 bits qu'on peut diviser en deux
groupescommelemontrelafigure3.

Figure3:Registresgnrauxdu8086.

a. groupededonnes:
Cegroupeestformpar4registresde16bits(AX,BX,CX,etDX)chaqueregistrepeut
tredivisendeuxregistresde8bits(AH,AL,BH,BL,CH,CL,DHetDL).
Le registre AX (Accumulateur) : Toutes les oprations de transfert de donnes avec les
entressortiesainsiqueletraitementdeschanesdecaractressefontdansceregistre,de
mmelesoprationsarithmtiquesetlogiques.
LesconversionsenBCDdursultatd'uneoprationarithmtique(addition,soustraction,
multiplicationetdivision)sefontdansceregistre.
3

ArchitectureInterneduMicroprocesseurIntel8086

LeregistreBX(registredebase):Ilestutilispourl'adressagededonnesdansunezone
mmoire diffrente de la zone code : en gnral il contient une adresse de dcalage par
rapportuneadressederfrence(segmentdedonnesDS).Deplusilpeutservirpourla
conversiond'uncodeunautre.
Le registre CX (Le compteur) : Lors de l'excution d'une boucle on a souvent recours un
compteurdebouclespourcompterlenombred'itrations,leregistreCXatfaitpourservir
commecompteurlorsdesinstructionsdeboucle.
Remarque:LeregistreCLsertentantquecompteurpourlesoprationsdedcalageet
derotation,danscecasilvacompterlenombrededcalages(rotation)debitsdroiteou
gauche.
LeregistreDX:OnutiliseleregistreDXpourlesoprationsdemultiplicationetdedivision
maissurtoutpourcontenirlenumrod'unportd'entre/sortiepouradresserlesinterfaces
d'E/S.
b. groupedepointeursetindex:
Ces registres sont plus spcialement adapts au traitement des lments dans la
mmoire.Ilssontengnralmunisdepropritsd'incrmentationetdedcrmentation.
Un cas particulier de pointeur est le pointeur de pile (Stack Pointer : SP). Ce registre
permetdepointerlapilepourstockerdesdonnesoudesadressesselonleprincipeduLIFO
(LastInFirstOut).
L'indexSI(sourceindex):Ilpermetdepointerlammoireilformeengnralundcalage(un
offset)parrapportunebasefixe(leregistreDS),ilsertaussipourlesinstructionsdechane
decaractres,eneffetilpointesurlecaractresource.
L'indexDI(Destinationindex):Ilpermetaussidepointerlammoire,ilprsenteundcalage
par rapport une base fixe (DS ou ES), il sert aussi pour les instructions de chane de
caractres,ilpointealorssurladestination.
LespointeursSPetBP(Stackpointeretbasepointer):Ilspointentsurlazonepile(unezone
mmoiregreenLIFO),ilsprsententundcalageparrapportlabase(leregistreSS).Pour
le registre BP, il a un rle proche de celui de BX, mais il est gnralement utilis avec le
segmentdepile.
2.7.2 Lesregistressegment
Le 8086 a quatre registres segments de 16 bits chacun : CS (code segment), DS (Data
segment),ES(Extrasegment)etSS(Stacksegment),cesregistressontchargsdeslectionner
lesdiffrentssegmentsdelammoireenpointantsurledbutdechacund'entreeux.Chaque
segmentdemmoirenepeutexcderles65536=216octets(64Ko).
LeregistreCS(codesegment):Ilpointesurlesegmentquicontientlescodesdesinstructions
duprogrammeencours.

Module:Microprocesseur

Remarque:Silatailleduprogrammedpasseles65536octetsalorsonpeutdiviserlecode
surplusieurssegments(chacunnedpassepasles65536octets)etpourbasculerd'unepartie
uneautreduprogramme,ilsuffitdechangerlavaleurduregistreCSetdecettemanireon
rsoutleproblmedesprogrammesquiontunetaillesuprieure65536octets.
LeregistreDS(Datasegment):Leregistresegmentdedonnespointesurlesegmentdes
variablesglobalesduprogramme,bienvidemmentlataillenepeutexcder64Koctets(sion
adesdonnesquidpassentcettelimite,onutiliselammeastucecitedanslaremarque
prcdentemaisdanscecasonchangelavaleurdeDS).
LeregistreES(Extrasegment):LeregistrededonnessupplmentairesESestutilisparle
microprocesseurlorsquel'accsauxautresregistresestdevenudifficileouimpossiblepour
modifier des donnes, de mme ce segment est utilis pour le stockage des chanes de
caractres.
LesegmentSS(Stacksegment):LeregistreSSpointesurlapile:lapileestunezonemmoire
ouonpeutsauvegarderlesregistresoulesadressesoulesdonnespourlesrcupreraprs
l'excutiond'unsousprogrammeoul'excutiond'unprogrammed'interruption.
Engnral,ilestconseilledenepaschangerlecontenudeceregistrecaronrisquede
perdre des informations trs importantes (exemple les passages d'arguments entre le
programmeprincipaletlesousprogramme).
2.7.3 LeregistreIP:(Lecompteurdeprogramme)
Il contient l'adresse de l'emplacement mmoire o se situe la prochaine instruction
excuter.Autrementdit,ildoitindiquerauprocesseurlaprochaineinstructionexcuter.Le
registreIPestconstammentmodifiaprsl'excutiondechaqueinstructionafinqu'ilpointe
surl'instructionsuivante.
2.7.4 Leregistred'tat(Flag)
Le registre d'tat sert contenir l'tat de certaines oprations effectues par le
processeur.Parexemple,quandlersultatd'uneoprationesttropgrandpourtrecontenu
dansleregistrecible(celuiquidoitcontenirlersultatdel'opration),unbitspcifiquedu
registred'tat(lebitOF)estpositionn1pourindiquerledbordement.
Remarque:Lesdrapeauxsontdesindicateursquiannoncentuneconditionparticuliresuite
uneoprationarithmtiqueoulogique.
Leregistred'tatdu8086estformparlesbitssuivants:

Figure4:Leregistredtat(ProgramStatusWord).

CF(CarryFlag:Retenue):cetindicateurestpositionn1lorsquilyauneretenuedursultat
8 ou 16 bits. Il intervient dans les oprations d'additions (retenue) et de soustractions
5

ArchitectureInterneduMicroprocesseurIntel8086

(emprunt)surdesentiersnaturels.IlestpositionnenparticulierparlesinstructionsADD,
SUBetCMP(comparaisonentredeuxvaleurs).
CF = 1 s'il y a une retenue aprs l'addition ou la soustraction du bit de poids fort des
oprandes.
PF (Parity Flag : Parit) : si le rsultat de l'opration contient un nombre pair de 1, cet
indicateurestpositionn1,sinonzro.
AF(AuxiliaryCarry:Demieretenue):cebitestgal1sionauneretenueduquarter(4bits)
depoidsfaibledanslequarterdepoidsplusfort.
ZF(ZeroFlag:Zro):Cetindicateurestpositionn1quandlersultatd'uneoprationest
gal zro. Lorsque l'on vient d'effectuer une soustraction (ou une comparaison), ZF = 1
indiquequelesdeuxoprandestaientgaux.Sinon,ZFestmis0.
SF(SignFlag:signe):SFestpositionn1silebitdepoidsfortdursultatd'uneadditionou
soustractionest1;sinonSF=0.SFestutilelorsquel'onmanipuledesentierssigns,carlebit
depoidsfortdonnealorslesignedursultat.
OF (Overflow Flag : Dbordement) : si on a un dbordement arithmtique ce bit est
positionn 1, cest dire le rsultat d'une opration excde la capacit de l'oprande
(registreoucasemmoire),sinonilest0.
DF (Direction Flag : Auto Incrmentation/Dcrmentation) : utilis par les instructions de
traitementdeschanesdecaractrespourautoincrmenterouautodcrmenterleSIetle
DI.
IF (Interrupt Flag : Masque d'interruption) : pour masquer les interruptions venant de
l'extrieur ce bit est mis 0, dans le cas contraire (IF = 1) le microprocesseur reconnat
l'interruptiondel'extrieur.
TF(TrapFlag:Pige):pourquelemicroprocesseurexcuteleprogrammepaspas.
Remarques:

Lesinstructionsdebranchementsconditionnelsutilisentlesindicateurs(drapeaux),qui
sontdesbitsspciauxpositionnsparl'UALaprscertainesoprations.

Chaqueindicateurestmanipulindividuellementpardesinstructionsspcifiques.

Les bits IF, DF et TF sont des indicateurs de contrle qui permettent de modifier le
comportementdumicroprocesseur.Ilssontpositionnsparleprogrammeur.

X:bitnonutilis(figure4).

2.8 Gestiondelammoire
L'espacemmoireadressablede1Mo=220octets(20bitsdubusd'adresse)du8086est
divisenquatresegmentslogiquesallantjusqu'64Koctetschacun.L'accscesespacesest
6

Module:Microprocesseur

directetsimultan.Or,lecompteurprogrammeestde16bitsdonclapossibilitd'adressage
estde216=64Ko(Cequinecouvrepaslatotalitdelammoire),alorsonutilisedeuxregistres
pourindiqueruneadresseauprocesseur,Chaquesegmentdbutel'endroitspcifiparle
registre segment. Le dplacement (offset) l'intrieur de chaque segment se fait par un
registrededcalagequipermetdetrouveruneinformationl'intrieurdusegment.
Exemple la paire de registres CS : IP : pointe sur le code d'une instruction (CS registre
segmentetIPdplacement).
Unsegmentestdoncunezonemmoirede64Ko(65536octets)dfinieparsonadresse
dedpart(sur20bits)quidoittreunmultiplede16.Dansunetelleadresse,les4bitsde
poidsfaiblesontzro.Onpeutdoncreprsenterladressedunsegmentavecseulementses
16bitsdepoidsfort,les4bitsdepoidsfaibletantimplicitement0.
Pourdsignerunecasemmoireparmiles216=65536casescontenuesdansunsegment,
ilsuffitdunevaleursur16bits.Ainsi,unecasemmoireestrepreparle8086aumoyende
deuxquantits(registres)sur16bits:

ladressedunsegment;
undplacementouoffset(appelaussiadresseeffective)danscesegment.

Cettemthodedegestiondelammoireestappelesegmentationdelammoire.

Figure5:Segmentationdelammoire.

Ladonneduncouple(segment,offset)dfinituneadresselogique,notesouslaforme
segment:offset.
Ladressedunecasemmoiredonnesouslaformedunequantitsur20bits(5digits
hexadcimaux) est appele adresse physique car elle correspond la valeur envoye
rellementsurlebusdadressesA0A19.
Lacorrespondanceentreladresselogiqueetladressephysiqueestreprsentesurla
figuresuivante:

ArchitectureInterneduMicroprocesseurIntel8086

Figure6:correspondanceentreadresselogiqueetadressephysique.

Ainsi,ladressephysiquesecalculeparlexpression:
Adressephysique=(16segment)+offset
Car le fait dinjecter 4 zros en poids faible de ladresse du segment (en binaire) revient
effectuerundcalagede4positions(4bits)verslagauche,cestdireunemultiplicationpar
24=16.
Auninstantdonn,le8086aaccs4segmentsdontlesadressessetrouventdansles
registres de segment CS, DS, SS et ES. Le segment de code contient les instructions du
programme,lesegmentdedonnescontientlesdonnesmanipulesparleprogramme,le
segment de pile contient la pile de sauvegarde et le segment supplmentaire peut aussi
contenirdesdonnes.

You might also like