Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Architecture de 8086

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 7

Evolution des Processeurs Intel 8086

Partie 6 :
Architecture du
MICROPROCESSEUR 8086 et Implémentation
matérielle du chemin de données

8086 en Circuit Intégré Architecture Générale de 8086


le traitement des instructions par L'UE et l'UIB SEGMENTATION DE LA MEMOIRE
Pipeline
• L’espace mémoire adressable par le 8086 est de 220 = 1
048 576 octets = 1 Mo (20 bits d’adresses). Cet espace
Avec les µP 8088/86 Intel unités EU et BIU concurrentes (travaillent simultanément).
est divisé en segments. Un segment est une zone
- BIU la mémoire et les périphériques + EU exécute les instructions recherchées précédemment.
mémoire de 64 Ko (65 536 octets) définie par son
BIU possède un buffer (chaîne), qui permet de stocker les instructions précédentes:
adresse de départ qui doit être un multiple de 16=
µP8088 possède une chaîne de 4 octets et le µP8086 en possède 6 octets. 10h. Dans une telle adresse, les 4 bits de poids faible
sont à zéro.
Si une instruction est lente pour s’exécuter, le buffer se voit remplir vite et y restera ainsi • On peut donc représenter l’adresse d’un segment avec
La BIU ne cherche une nouvelle instruction que s’il y’a 2 octets inoccupés dans le buffer (µP8086)
seulement ses 16 bits de poids fort, les 4 bits de poids
faible étant implicitement à 0.
Pour µP8086, il existe 2 stages de pipeline: fetch et exécute. Avec les µP plus puissants, il y’a plusieurs niveaux de
pipeline. • On utilise alors deux registres pour adresser une case
mémoire donnée:
Pipeline + largeur du bus de données conception de puissants µPs.
• Un registre pour adresser le segment, appelé registre
segment: CS, DS, SS, ES
Fetch 1 Execute 1 • Un registre pour adresser à l'intérieur du segment,
Fetch 1 Execute 1 Fetch 2 Execute 2 Execution avec appelé registre offset: IP, SP, BP, SI, DI.
Fetch 2 Execute 2
Pipeline • Une adresse se présente sous la forme segment:offset
Execution Sans Pipeline µP 80x86 Fetch 3 Execute 3
µP8085 (Adresse Logique)

Registres de 8086 REGISTRES GÉNÉRAUX


• Tous les registres du 8086 sont structurés en 16 bits.
Registres Usage

AX:  Usage général,


Accumulateur  Obligatoire pour la multiplication et la division,
 Ne peut pas servir pour l'adressage

BX : Base  Usage général,


 Adressage

CX : Comptage  Usage général,


et calcul Compteur de répétition.
 Ne peut pas servir pour l'adressage

DX : Data  Usage général,


 Extension au registre AX pour contenir un
nombre 32 bits Dans la multiplication et la
division 16 bits
Ne peut pas servir pour l'adressage
REGISTRES GÉNÉRAUX REGISTRES DE SEGMENT
Registres Usage Registres Usage

DI : Registre  Usage général CS : Code  Définit le début de la mémoire programme dans


d'index Adressage comme registre d’index de l'opérande Segment laquelle sont stockées les instructions du
(destination) destination programme.
Les adresses des différentes instructions du
programme sont relatives à CS
SI : Registre Usage général
d'index (source)  Adressage comme registre d’index de DS : Data Définit le début de la mémoire de données dans
l'opérande source. Segment laquelle sont stockées toutes les données traitées
par le programme.
SP : Pointeur de  Utilisé pour l'accès à la pile. Pointe sur la tête de
Pile la pile SS : Stack  Définit le début de la pile.
Segment  SP permet de gérer l’empilement et le
BP : Pointeur de  Usage général dépilement.
Base  Adressage comme registre de base
ES : Extra  Définit le début d'un segment auxiliaire pour
Segment données

COMPTEUR D’INSTRUCTION et Gestion de mémoire


REGISTRE D'ÉTAT (FLAGS) Accès au segment de Code : CS*10h+IP (Opération de Fetch)
Le compteur d’instruction (IP), appelé aussi Compteur Ordinal (C.O.) permet de pointer
TOUJOURS le premier octet de l’instruction suivante.

CF : indicateur de retenue (carry) ;


PF : indicateur de parité;
AF : indicateur de retenue auxiliaire ;
ZF : indicateur de zéro ;
SF : indicateur de signe ;
TF : indicateur d’exécution pas à pas (trap) ;
IF : indicateur d’autorisation d’interruption ;
DF : indicateur de décrémentation ;
OF : indicateur de dépassement (overflow).
Gestion de mémoire Gestion de mémoire
Accès au segment de données : DS*10h+SI (Opération de Accès au segment de pile : SS*10h+SP (sauvegarde/récupération
transfert de données en écriture ou lecture) temporaires de données- Appel de procédures)

Gestion de mémoire Chemins de données de traitement


Accès au segment de pile : ES*10h+DI (manipulation des données d’instruction
supplémentaires)
• 1/ Recherche d’Instruction (Fetch)
• 2/ Décodage de format d’instruction
• 3/Recherche de l’opérande
• 4/ Exécution de l’instruction
Recherche d’instruction Décoder l’instruction :
RI ← [CS:IP] Dec ← RI

Charger l’Opérande
Charger l’Opérande instruction Reg1, mem(imm) ou mem(imm), Reg1:
RT2 ←[DS*10h+SI+imm] et RT1 ← Reg1
instruction Reg1, Reg2: RT1 ←Reg1 et RT2 ←Reg2
Exécuter l’Instruction Exécuter l’Instruction
instruction Reg1, Reg2: instruction Reg1, mem(imm):
Reg1 ← RT1 Op RT2 Reg1 ← RT1 Op RT2

Exécuter l’Instruction Modes d’Adressage du µP8086


instruction mem(imm),Reg1:
M[DS*10h+SI+imm] ← RT2 Op RT1
A - La CPU peut adresser des opérandes (Données) de plusieurs manières, appelés Modes d’Adressage .
R C
E C - Leur nombre est déterminé une fois le µP conçu et ne peut être changé. Les µP80x86 en possède 7:
G É Registre, Immédiat, Direct, Indirect par registre, Base relative, Indexe relative et Base indexe relative.
I S
S 1. Adressage par Registre MOV DX, BX ADD AL, AH
T R
R A 2. Adressage Immédiat MOV AX, 2550h ADD BL, 40h
E P
S I • Note: ce mode est utilisé pour charger une donnée dans un registre quelconque sauf FR et
D (CS, DS, S, ES) MAIS MOV AX, 2550h MOV DS, AX
E
3. Adressage Direct MOV DL, [2550] ;contenu de DS:2500 dans DL
A
4. Adressage Indirect MOV AL, [BX] ; contenu de DS:BX dans AL
M C
É Notes: 1. Attention: différent de (MOV AL, BX) ; BX AL (erreur!! taille des registres)
C
M 2. MOV [DI], AH (copie un octet) et MOV [SI], AX
É
O
I S 5. Adressage Base relative MOV CX, [BX]+9 ; copie DS:BX+9 et DS:BX+9+1 dans CX
R MOV AL, [BP]+5 ; copie SS:BP+5 dans AL
E Note: MOV AL,[BP+5] ou MOV AL,5[BP] “BP+5” est appelé adresse effective
L
6. Adressage Index relatif MOV DX, [SI]+5 ; copie DS:SI+5 et DS:SI+5+1 dans CX
E
MOV CL, [DI]+8 ; copie DS:DI+8 dans CL
N
7. Adressage Base Index relatif MOV CL, [BX][DI]+8 ; copie DS:BX+DI+8 dans CL
T MOV CH, [BX+SI+20] ; copie DS:BX+SI+20 dans CH
MOV AL, [BP][DI]+12 ; copie SS:BP+DI+12 dans AL
MOV AH, [BP+SI+29] ; copie SS:BP+SI+29 dans AH
Attention: MOV AL, [SI][DI]+12 ou MOV AL, [BX][BP]+12; illégales!!!!!
Modes d’Adressage du µP80x86 Registres “Segment” et “Offset”
• Récapitulatif Registres Offset utilisés pour les différents segments

Modes d’Adressage Opérande Segment par défaut Registres Segment CS DS ES SS


Registre reg /
Registres Offset IP SI, DI, BX SI, DI, BX SP, BP
Immédiat data /
Direct [offset] DS
Registre Indirect [BX] DS
[SI] DS
[DI] DS
Base relative [BX] + dépl. DS
[BP] + dépl. SS
Index relatif [DI] + dépl. DS
[SI] + dépl. DS
Base Index relatif [BX][DI] + dépl. DS
[BX][SI] + dépl. DS
[BP][DI] + dépl. SS
[BP][SI] + dépl. SS

Vous aimerez peut-être aussi