Академический Документы
Профессиональный Документы
Культура Документы
INTRODUCTION
L'apparition des microprocesseurs date du dbut des annes 1970. A cette poque, deux vnements
favorables sont apparus :
le concept de "LSI (Large Scale Integration)" permettant d'intgrer plusieurs milliers de portes sur un
mme substrat.
l'arrive maturit de la technologie MOS caractrise par sa faible consommation.
La conjugaison de ces vnements a permis de regrouper une unit centrale d'ordinateur dans un seul circuit
intgr appel "microprocesseur".
Depuis, une multitude de composants de ce type sont apparus au sein de familles provenant essentiellement
de grands constructeurs amricains: Intel, Motorola, Advanced Micro Devices (AMD),
Texas Instruments,...et japonais : NEC, Mitsubishi,...
- Le bus de donnes : cest un ensemble de fils bidirectionnels qui va permettre le transfert de donnes entre
les diffrents lments du systme.
- Le bus dadresses : il permet dadresser un lment par le microprocesseur. Il est unidirectionnel. Il
dtermine la capacit maximale d'adressage du systme, c'est dire le nombre maximum de mots de la
mmoire associe (ex : 16 bits "adressent" 64 Kmots).
- Le bus de commandes et de contrle : cest un bus qui permet de vhiculer les signaux de contrles et de
commandes tels que lhorloge les signaux Rd/Wr etc
1
Support de Cours Tel Section A
I.2 / Architecture dune CPU
Une CPU est forme par les trois lments fonctionnels interconnects suivants :
Registres.
UAL : Unit arithmtique et logique.
Circuit de contrle.
II.1 / Introduction
Le processeur 8086 d'Intel est la base des processeurs Pentium. Les processeurs successifs (de PC) se sont
en effet construits petit petit en ajoutant chaque processeur des instructions et des fonctionnalits
supplmentaires, mais en conservant chaque fois les spcificits du processeur prcdent.
Le 8086 (dvelopp en 1978) est le premier microprocesseur de type x86. Il est quip d'un bus de donnes
de 16 bits et un bus dadresses de 20 bits et fonctionne des frquences diverses selon plusieurs variantes: 5,
8 ou 10 MHz.
II.3 / Architecture interne du 8086 :
Il existe deux units internes distinctes: l'UE (Unit d'Excution) et l'UIB (Unit d'Interfaage avec le Bus).
Le rle de l'UIB est de rcuprer et stocker les informations traiter, et d'tablir les transmissions avec les
bus du systme. L'UE excute les instructions qui lui sont transmises par l'UIB.
2
Support de Cours Tel Section A
Donc en conclusion on peut dire que le 8086/8088 se compose essentiellement de deux units : l'UIB qui
fournit linterface physique entre le microprocesseur et le monde extrieur et lUE qui comporte
essentiellement lUAL de 16 bits qui manipule les registres gnraux de 16 bits aussi.
Le programmeur dispose de 8 registres internes de 16 bits quon peut diviser en deux groupes :
- groupe de donnes : form par 4 registres de 16 bits (AX, BX, CX, et DX) chaque registre peut tre
divis en deux registres de 8 bits (AH, AL, BH, BL, CH, CL, DH et DL).
- groupe de pointeur et indexe : form de 4 registres de 16 bits (SI, DI, SP, BP) et font gnralement rfrence un
emplacement en mmoire.
A / Groupe de donnes :
Registre AX : (Accumulateur)
Toutes les oprations de transferts de donnes avec les entres sorties ainsi que le traitement des chanes de
caractres se font dans ce registre, de mme les oprations arithmtiques et logiques.
Registre BX : (registre de base)
Il est utilis pour ladressage de donnes dans une zone mmoire diffrente de la zone code. De plus il peut servir pour
la conversion dun code un autre.
Registre CX : (Le compteur)
Lors de lexcution dune boucle on a souvent recours un compteur de boucles pour compter le nombre ditrations,
le registre CX a t fait pour servir comme compteur lors des instructions de boucle.
Registre DX :
On utilise le registre DX pour les oprations de multiplication et de division mais surtout pour adresser les interfaces
dE/S.
b / Groupe de pointeur et indexe :
Ces registres sont plus spcialement adapts au traitement des lments dans la mmoire. Ils sont en gnral munis de
proprits d'incrmentation et de dcrmentation.
Lindexe SI : (source indexe) :
Il permet de pointer la mmoire il forme en gnral un dcalage (un offset) par rapport une base fixe (le registre DS).
Lindexe DI : (Destination indexe) :
Il permet aussi de pointer la mmoire il presente un dcalage par rapport une base fixe (DS ou ES).
Les pointeurs SP et BP : ( Stack pointer et base pointer )
4
Support de Cours Tel Section A
I
ls pointent sur la zone pile (une zone mmoire qui stocke linformation avec le principe filo), ils presentent un
dcalage par rapport la base (le registre SS).
c / Les registres segment:
Le 8086 a quatre registres segments de 16 bits chacun : CS (Code Segment, DS (Data Segment), ES (Extra Segment)
et SS (Stack Segment), ces registres sont chargs de slectionner les diffrents segments de la mmoire en pointant sur
le dbut de chacun dentre eux.
Le registre CS (Code Segment) :
Il pointe sur le segment qui contient les codes des instructions du programme en cours.
Le registre DS (Data Segment) :
Le registre segment de donnes pointe sur le segment des variables globales du programme.
Le registre ES (Extra Segment) :
Le registre ES pointe sur le segment de donnes supplementaires, ce segment est utilis aussi pour le stockage de
chaines de caracteres.
Le segment SS (Stack Segment) :
Le registre SS pointe sur la pile : la pile est une zone mmoire ou on peut sauvegarder les registres ou les adresses ou
les donnes pour les rcuprer aprs lexcution dun sous programme ou lexcution dun programme dinterruption.
d / Le registre IP (Le compteur de programme) :
Le registre d'tat FLAG sert contenir l'tat de certaines oprations effectues par le processeur. Par exemple, quand
le rsultat d'une opration est trop grand pour tre contenu dans le registre cible (celui qui doit contenir le rsultat de
lopration), un bit spcifique du registre d'tat (le bit OF) est mis 1 pour indiquer le dbordement.
5
Support de Cours Tel Section A
Remarque :
X : bit non utilis.
CF (Carry Flag) :
Retenue : cet indicateur est mis 1 lorsqu il y a une retenue du rsultat 8 ou 16 bits.
Exemples (sur 8 bits) :
ZF (Zero Flag) :
Zro : Cet indicateur est mis 1 quand le rsultat dune opration est gal zro. Sinon, ZF est positionn 0.
SF (Sign Flag) :
SF est positionn 1 si le bit de poids fort du rsultat dune addition ou soustraction est 1 ; sinon SF=0. SF est utile
lorsque lon manipule des entiers signs, car le bit de poids fort donne alors le signe du rsultat. Exemples (sur 8 bits) :
OF (Overflow Flag) :
Dbordement : si on a un dbordement arithmtique ce bit est mis 1. cad le rsultat dune opration excde la
capacit de loprande (registre ou case mmoire), sinon il est 0.
6
Support de Cours Tel Section A
Exemple 2 :
MOV AX, [BX+SI]
Cela signifie que dans le registre AX on va charger le contenu de la case mmoire pointee par BX+SI
Exemple 3 :
MOV AX, [BX+SI+5]
Cela signifie que dans le registre AX on va mettre le contenu de la case mmoire pointee par BX+SI+5
MOV SI, 20
MOV BX, 1100
MOV AX, [BX+SI+5]
1 / MOV :
Elle permet de transfrer les donnes (un octet ou un mot) dun registre un autre registre ou dun registre
une case mmoire, sa syntaxe est comme suit :
Exemples :
MOV destination, source
MOV AX, BX ;
7
Support de Cours Tel Section A
MOV AH, CL ;
MOV AX, [100]; Transfert du contenu dune case mmoire 16 bits vers AX
MOV [300], AL ; Transfert du contenu du AL vers une case mmoire 8 bits.
2 / ADD: (Addition)
Syntaxe : ADD Destination, source
Elle permet dadditionner le contenu de la source (octet ou un mot) avec celui de la destination le rsultat est mis dans
la destination
Destination <---------- Destination + source
Exemples :
ADD AX, BX ; AX = AX + BX (addition sur 16 bits)
ADD AL,BH ; AL = AL + BH (addition sur 8 bits )
ADD AL,[SI] ; AL = AL + le contenu de la case mmoire pointe par SI
ADD [DI], AL ; le contenu de la case mmoire pointe par DI est additionn avec
;AL, le rsultat est mis dans la case mmoire pointe par DI.
3 / SUB : (Soustraction)
Syntaxe : SUB Destination, source
Elle permet de soustraire la destination de la source (octet ou un mot) le rsultat est mis dans la destination
Destination <--------- Destination - source
Exemples :
SUB AX,BX ; AX = AX - BX (Soustraction sur 16 bits )
SUB AL,BH ; AL = AL - BH ( Soustraction sur 8 bits )
SUB AL,[SI] ; AL = AL - le contenu de la case mmoire pointe par SI
SUB [DI],AL ; le contenu de la case mmoire pointe par DI est soustraite de
; AL , le rsultat est mis dans la case mmoire pointe par DI.
4 / INC : (Incrmentation)
Syntaxe : INC Destination
Elle permet dincrmenter le contenu de la destination
Destination <---------- Destination + 1
Exemples :
INC AX ; AX = AX + 1 (incrmentation sur 16 bits).
INC AL ; AL = AL +1 (incrmentation sur 8 bits).
INC [SI] ; [SI] = [SI] + 1 le contenu de la case mmoire pointe par SI sera
;incrment.
5 / DEC : (Dcrmentation)
Syntaxe : DEC Destination
Elle permet de dcrmenter le contenu de la destination
Destination <----------- Destination - 1
Exemples :
DEC AX ; AX = AX - 1 (dcrmentation sur 16 bits).
DEC AL ; AL = AL -1 (dcrmentation sur 8 bits).
8
Support de Cours Tel Section A
DEC [SI] ; [SI] = [SI] - 1 le contenu de la case mmoire pointe par SI sera
dcrment.
6 / NEG : (Ngatif)
Syntaxe : NEG Destination
Elle soustrait loprande destination (octet ou mot) de 0 le rsultat est stocker dans la destination, donc avec cette
opration on ralise le complment deux dun nombre
Destination <----------- 0 - Destination
Exemples :
NEG AX ; AX = 0 - AX
NEG AL ; AL = 0 - AL
NEG [SI] ;[SI] = 0 - [SI]
7 / CMP : (Comparaison)
Syntaxe : CMP Destination , Source
Exemple :
CMP AX, BX
8 / MUL :
MUL effectue une multiplication de l oprande source avec laccumulateur :
Syntaxe : MUL Source
Si la source est un octet alors elle sera multiplie par laccumulateur AL le rsultat sur 16 bits sera stock dans
le registre AX.
Si la source est un mot alors elle sera multiplie avec laccumulateur AX le rsultat de 32 bits sera
stock dans la paire des registres AX et DX
9 / DIV :
DIV Elle effectue une division de laccumulateur par loprande source :
Exemples
DIV BX ; Cela implique que le quotient soit mis dans AX et le reste dans DX
DIV BL ; Cela implique que le quotient soit mis dans AL et le reste dans AH
9
Support de Cours Tel Section A
10 / NOT : (Ngation)
Elle ralise la complmentation 1 dun nombre
Syntaxe : NOT Destination
Exemple :
MOV AX, 500 ; AX = 0000 0101 0000 0000
NOT AX ; AX = 1111 1010 1111 1111
11 / AND : ( Et logique )
Syntaxe : AND Destination, source
Elle permet de faire un ET logique entre la destination et la source (octet ou un mot) le rsultat est mis dans la
destination
Destination <---------- Destination . source
Exemples :
MOV AX , 503H ; AX = 0000 0101 0000 0011
AND AX , 0201H ; 0000 0101 0000 0011
; AND 0000 0010 0000 0001
; = 0000 0000 0000 0001
AND AX,BX ; AX = AX . BX (Et logique entre AX et BX)
AND AL,BH ; AL = AL . BH (ET logique sur 8 bits)
AND AL,[SI] ; AL = AL AND le contenu de la case mmoire
; pointe par SI
AND [DI],AL ; ET logique entre la case mmoire pointe par
; DI et AL, le rsultat est mis dans la case
; mmoire pointe par DI
12 / OR : (OU logique )
Syntaxe : OR Destination, source
Elle permet de faire un OU logique entre la destination et la source (octet ou un mot) le rsultat est mis dans la
destination
Destination <----------- Destination + source
Exemples :
MOV AX , 503H ; AX = 0000 0101 0000 0011
OR AX , 0201H ; 0000 0101 0000 0011
; OR 0000 0010 0000 0001
; = 0000 0111 0000 0011
OR AX,BX ; AX = AX + BX ( OU logique entre AX et BX )
OR AL,BH ; AL = AL + BH ( OU logique sur 8 bits )
OR AL,[SI] ; AL = AL OU le contenu de la case mmoire
; pointe par SI
OR [DI],AL ; OR logique entre la case mmoire pointe par
; DI et AL, le rsultat est mis dans la case
; mmoire pointe par DI
10
Support de Cours Tel Section A
13 / XOR : ( OU exclusif )
Syntaxe : XOR Destination, source
Elle permet de faire un OU exclusif logique entre la destination et la source (octet ou un mot) le rsultat est mis dans
la destination
Destination <------------ Destination + source
Exemples :
MOV AX , 503H ; AX = 0000 0101 0000 0011
XOR AX , 0201H ; 0000 0101 0000 0011
; XOR 0000 0010 0000 0001
; = 0000 0111 0000 0010
XOR AX,BX ; AX = AX + BX (OU exclusif entre AX et BX )
XOR AL,BH ; AL = AL + BH ( OU exclusif sur 8 bits )
XOR AL,[SI] ; AL = AL OU exclusif le contenu de la case
; Mmoire pointe par SI
XOR [DI],AL ; XOR logique entre la case mmoire pointe par
; DI et AL, le rsultat est mis dans la case
; mmoire pointe par DI
11
Support de Cours Tel Section A
MOV CL,4
ROR AL,CL
16 / PUSH :
Elle permet dempiler les registres du CPU sur le haut de la pile
Syntaxe : PUSH SOURCE
Exemple :
17 / POP :
Elle permet de dpiler les registres du CPU sur le haut de la pile
Syntaxe : POP destination
Exemple :
12
Support de Cours Tel Section A
18 / XCHG :
Elle permet de commuter la source avec la destination comme suit :
19 / IN / OUT:
Elle permet de rcuprer des donnes dun port (donc de la priphrie) ou restituer des donnes un port, dans les
deux cas sil sagit denvoyer ou de recevoir un octet on utilise laccumulateur AL, sil sagit denvoyer ou de recevoir
un mot on utilise laccumulateur AX.
Syntaxe :
IN ACCUMULATEUR, DX
OUT DX, ACCUMULATEUR
Remarque :
DX : contient ladresse du port.
ACCUMULATEUR : contient la donne ( recevoir ou mettre).
20 / LEA (Load Effective Address):
Elle transfert ladresse offset (dcalage) dune oprande mmoire dans un registre de 16 bits (pointeur ou index).
Exemple : LEA BX, TAB_VAL (cest quivalent MOV BX, offset TAB_VAL)
13
Support de Cours Tel Section A
La procdure est nomme calcul. Aprs linstruction B, le processeur passe linstruction C de la procdure,
puis continue jusqu rencontrer RET et revient linstruction D.
Linstruction CALL effectue donc les oprations :
Empiler la valeur de IP. A ce moment, IP pointe sur linstruction qui suit le CALL.
Placer dans IP ladresse de la premire instruction de la procdure (donne en argument).
22 / RET :
RET ne prend pas dargument ; le processeur passe linstruction place immdiatement aprs le CALL.
Ladresse de retour, utilise par RET, est en fait sauvegarde sur la pile par linstruction CALL. Lorsque le
processeur excute linstruction RET, il dpile ladresse sur la pile (comme POP), et la range dans IP.
Saut conditionnel :
14