Le Microprocesseur 8086
I. Architecture :
Comme
nous
un
l’avons
microprocesseur exécute un programme en
répétant les cycles suivants :
déjà
vue,
Cycle de recherche.
Cycle d’exécution.
Dans
les microprocesseurs précédents, ces
étapes sont effectuées d’une façon séquentielle.
Le Microprocesseur 8086
Alors que l’architecture du 8086 ; pour effectuer
les mêmes étapes, alloue deux unités de
traitement :
Unité d’exécution EU.
Unité d’interface avec le Bus BIU.
Les deux unités peuvent fonctionner de façons
indépendantes. Pendant que
l’unité de
commande décode l’instruction présente dans le
registre d’instruction, l’unité d’interface avec le
en
Bus
mémoire.
l’instruction
recherche
suivante
Le Microprocesseur 8086
Le Microprocesseur 8086
1- Unité d’exécution : EU
Cette unité reçoit les instructions de la file
d’attente, les décode et les exécute. Elle
contient une unité arithmétique et logique
16 bits reliés au indicateur d’état de CPU, un
décodeur d’instruction et elle manipule aussi
les registres généraux du CPU.
Le Microprocesseur 8086
2- Unité d’interface avec le Bus : BIU
Son travail principal est de calculer
les
adresses réelles sur 20 bits, et de charger la
file d’attente d’instruction. Cette unité
anticipe la recherche des instructions en
mémoire. Ce mécanisme d’anticipation
temps mort de
les
permet d’éliminer
suivante en
l’instruction
recherche de
mémoire.
Le Microprocesseur 8086
Registres
généraux
Pointeurs
Registres de
segments
Le Microprocesseur 8086
AX
BX
CX
DX
3- Les registres généraux :
AX, BX, CX, DX, SP, BP, SI, DI
Ils servent à contenir les
opérandes arithmétiques et
logiques.
Publicité
Les registres AX, BX, CX et DX
peuvent être considérées
comme des registres double de
8bits et peuvent donc être
utilisé sur 8 ou 16 bits.
Le Microprocesseur 8086
Certains des registres généraux interviennent
implicitement selon les instructions :
AX et DX : interviennent pour toutes
instructions de multiplication, de division et
d’entrée/sortie.
CX : est forcement utilisé pour toutes les
instructions de la boucle, de décalage et de
répétition.
Le Microprocesseur 8086
BX et BP : ont le titre de registres de bases, car
ils sont souvent désignés pour contenir l’adresse
de base d’une structure de données en
mémoire. (Exemple : l’adresse de base d’un
tableau).
SI et DI : sont appelées registres d’index
puisqu’ils ont souvent pour objet, de contenir
un index qui s’incrémente au fur et à mesure de
l’examen d’une structure de données.
SP : il a la fonction classique de pointeur de pile.
Le Microprocesseur 8086
4- Les registres de segments : CS, DS, SS, ES
Les unités centrales de la famille 8086
permettent à un programme en cours
d’exécution, d’accéder immédiatement à 4
segments de la mémoire. Les registres de
segment sont utilisés pour identifier ces
quatre segments (Le registre de segment
pointe sur l’origine du segment).
Le Microprocesseur 8086
CS : registre de segment
de code.
DS :registre de segment
de données.
ES : registre de segment
de données extra.
SS :registre de segment
de pile.
Le Microprocesseur 8086
Le Microprocesseur 8086
Le Microprocesseur 8086
5- Le registre d’indicateur :
a) Les indicateurs d’états:
CF : Bit de retenue : indique qu’une retenue s’est
propagée à partir du bit le plus significatif d’un
opérande 8bits ou 16bits à la suite de l’exécution
d’une opération arithmétique. Dépassement de
capacité de l’accumulateur en cas d’addition, passage
en dessous de zéro pour la soustraction.
PF : Indicateur de parité : prend la valeur 1 si le résultat
d’une opération contient un nombre pair de 1.
Le Microprocesseur 8086
AF : Indicateur de retenue auxiliaire : prend
la valeur 1 pour indiquer qu’une retenue
s’est propagée à partir du bit 3 (utiliser
DCB).
ZF : bit de zéro : prend la valeur 1 si le
résultat d’une opération est nul.
Le Microprocesseur 8086
SF : bit de signe : prend la valeur 1 si le bit
le plus significatif du résultat d’une
opération est 1.
OF : bit de débordement de capacité :
utilisé en arithmétique signé, indique
que le résultat d’une opération
arithmétique est sortie de la gamme du
système de numération signé.
Publicité
Le Microprocesseur 8086
b) Les Indicateurs de commandes :
TF : bit de mode pas à pas : positionné à 1, impose
au processeur le mode d’exécution en pas à pas
dans un but d’aide à la mise au point des
programmes.
DF : bit de direction : DF contrôle le sens
d’évolution dans une chaîne de donnée. Si DF=1,
il y a auto-décrémentation des registres SI et DI.
Et si DF=0, il y a auto-incrémentation dans ces
registres.
Le Microprocesseur 8086
IF : bit de validation des interruptions :
positionné à 1, les interruptions externes du
type INTR sont autorisées.
Le Microprocesseur 8086
II. Notion de segment :
Un segment est un espace mémoire pouvant
aller jusqu’à 65536 octets (64 koctets).
1- Segment de code : contient le code
exécutable du programme courant. L’origine
de ce segment sera placée dans le registre de
segment CS.
CS : IP pointe toujours l’instruction suivante
à exécuter.
Le Microprocesseur 8086
2- Segment de donnée : contient toutes les données
courante du programme. C’est le segment source
lors d’une opération de traitement de chaîne de
données. L’origine de ce segment sera placée dans
le registre de segment DS. Le registre index
combiné avec ce registre c’est le SI.
DS : SI pointe toujours l’élément de la chaîne
source (pour le cas des instructions de traitement
de chaîne ).
Le Microprocesseur 8086
3- Segment de donnée extra : c’est le segment
destination lors d’une opération sur une
chaîne de donnée. L’origine de ce segment
est placé dans ES. Le registre indexe combiné
avec celui-ci est le DI.
ES : DI pointe toujours l’élément de la chaîne
destination (pour le cas des instructions de
traitement de chaîne ).
Le Microprocesseur 8086
4- Segment de pile : contient toutes les
informations stockées dans la pile. L’origine
de ce segment est placée dans le registre SS.
A ce registre de segment sera associés le
pointeur de pile SP.
SS : SP pointe toujours le dernier élément
empilé.
Le Microprocesseur 8086
III. Adressage de microprocesseur 8086 :
1- Les types d’adresses :
a) Adresse réelle : l’adresse réelle est obtenue
en décalant le registre de segment de 4
positions binaires vers la gauche et en lui
ajoutant l’offset (déplacement). Le résultat
sera une adresse physique en mémoire sur 20
bits.
Le Microprocesseur 8086
b) Adresse effective : c’est le déplacement
relatif au début de segment physique
(offset).
c) Adresse logique : cette adresse est formulée
sur un double mot (1mot= 2 octets = 16bits).
Le premier mot représente le segment. Le
second mot, c’est l’adresse effective (offset).
(Segment : offset) Exemple, CS:IP.
Le Microprocesseur 8086
2- Les modes d’adressage :
Publicité
a) Adressage immédiat : l’opérande se
trouve dans le deuxième mot de l’instruction.
Exemple : MOV BX, 4500 ; BX4500
b) Adressage registre : l’opérande se trouve
dans un registre.
Exemple : MOV AX, BX ; AXBX
Le Microprocesseur 8086
c) Adressage direct : le déplacement qui
permet d’accéder à l’opérande est contenu
dans l’instruction.
Exemple : MOV AL, [200h]
d) Adressage indirect : le déplacement qui
permet d’accéder à l’opérande est contenu
dans l’un des registres SI, DI, BX, BP.
Exemple : MOV AL, [BX]
Le Microprocesseur 8086
e) Adressage Basé : Le déplacement qui
permet d’accéder à l’opérande est égale à la
somme du déplacement mentionné dans
l’instruction et du contenu du registre de base
BX ou BP.
Exemple : MOV CL, [BX+40]
f) Adressage Indexé : Le déplacement qui
permet d’accéder à l’opérande est égale à la
somme du déplacement mentionné dans
l’instruction et du contenue de registre d’index
de SI ou DI.
Exemple : MOV AL, [SI+200h].
Le Microprocesseur 8086
g) Adressage Basé Indexé : Le déplacement
qui permet d’accéder à l’opérande est égale à
la somme du contenue du registre de base,
du contenue du registre d’index et du
déplacement mentionné dans l’instruction.
Exemple : MOV AL, [BX+SI+40h].
Ce mode d’adressage est surtout intéressant
pour accéder à l’élément d’une matrice où à
un tableau bidimensionnel.
Le Microprocesseur 8086
h) Adressage de Chaîne : L’adressage de
chaîne fait implicitement appelle aux index SI
pour la source et DI pour le destinataire.
Exemple: MOVSB
MOVSW
Le Microprocesseur 8086
i) Adressage des Entrées Sorties : L’adressage se
fait de deux manières :
Adressage direct : (utilisé si adr.port<FFh)
L’adresse du port est contenu dans le deuxième
octet de l’instruction. Le transfert de la donnée
se fait entre le port et AX dans le cas des mots,
le port et AL dans le cas des octets.
Exemple: IN AX, 40h
OUT 42h, AL
Le Microprocesseur 8086
Adressage par registre : L’adresse du port est
contenu dans le registre DX. Le transfert de la
donnée 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 données à
empiler ou à dépiler sont uniquement des
mots. La provenance ou la destination est un
registre ou un emplacement mémoire. Le SP
est décrémentée de 2 à chaque empilement
et incrémentée de 2 à chaque dépilement.