Vous êtes sur la page 1sur 17

P et C : Chapitre 1 : Architecture d’un Microprocesseur Dr.

METIDJI

Chapitre 1 : Architecture d’un Microprocesseur

1- Historique des microprocesseurs :

- Premier microprocesseur : Intel, 1971, microprocesseur 4004, puis 8008, premier


microordinateur : le Micral, 1973, France, puis l’Altair, 1975, Etats-Unis.
- Autres microprocesseurs : 8080 et 8085 d’Intel, 6800 de Motorola, Z80 de Zilog :
microprocesseurs 8 bits, 1974.
- Microprocesseurs 16 bits : 8086/8088 (1978-1979) d’Intel, 68000 de Motorola.
- Microprocesseurs 32 bits en 1986 : 80386 d’Intel et 68020 de Motorola.
- Ordinateurs de plus en plus puissants, basés sur des microprocesseurs performants : Pentium
d’Intel, PowerPC d’IBM 1993,
- Systèmes embarqués : microcontrôleurs, processeurs de traitement de signal (DSP), ...

2- Concepts de base :
Quand un problème est posé, on essaie normalement de trouver une solution. L’expression de cette
solution sous la forme d’une procédure à suivre pas à pas s’appelle un algorithme.
Une fois que la solution d’un problème a été exprimée sous la forme d’un algorithme, il faut traduire
celui-ci en langage compréhensible par l’ordinateur. Seul un dérivé bien défini de la langue naturelle,
appelé langage de programmation, peut être compris par l’ordinateur. On appelle programmation la
conversion d’un algorithme en une séquence d’instruction appartenant à un langage de
programmation. La phase de traduction de l’algorithme en langage de programmation s’appelle un
codage.
2-1 Représentation interne de l’information :
Dans un système microprogrammé à base de microprocesseurs et/ou de microcontrôleurs, toute
information (nombre ou texte alphanumérique) est stockée sous forme de groupe de bits. En effet ces
systèmes électroniques ne savent distinguer qu’entre deux niveaux : présence ou absence de tension !
Pour représenter deux niveaux logiques (niveau haut de tension et niveau bas) il est donc obligatoire
d’utiliser un système de numération à base de deux : le système binaire qui utilise deux chiffres, le 0
et le 1 pour représenter n’importe quel nombre sous formes d’une série de 0 et de 1. Chaque chiffre
est appelé Bit (BInary uniT en anglais) et un ensemble de huit bits est un Octet (Byte en anglais).
Exp : B’1001=1×20+0×21+0×22+1×23=9.
2-2 Représentation externe de l’information :
La représentation externe de l’information est la manière dont l’information apparaît à l’utilisateur.
Elle est représentée essentiellement sous trois formes : binaire, octal ou hexadécimal et symbolique.
La représentation symbolique désigne la représentation externe de l’information dans sa forme
symbolique proprement dit. Les nombres décimaux sont représentés comme des nombre décimaux et
non comme suite de symboles hexadécimaux ou bits. De même les textes sont représentés en clair.
La représentation symbolique est la plus pratique pour l’utilisateur. Cependant, elle nécessite une
interface sous forme d’un clavier alphanumérique, plus une imprimante ou un terminal à écran CRT.

1
P et C : Chapitre 1 : Architecture d’un Microprocesseur Dr. METIDJI

3- Structure basique d’un calculateur :


L’élément de base d’un calculateur est constitué par l’unité centrale de traitement (UCT, CPU :
Central Processing Unit) ou le microprocesseur.

Figure 1: Architecture de base d'un calculateur

3-1 Le Microprocesseur (p) :


Le microprocesseur ( M.P.U. : MicroProcessor Unit ; C.P.U. : Central Processing Unit) est un circuit
intégré complexe (ensemble de millions de transistors) capable d'effectuer séquentiellement et
automatiquement des suites d'opérations élémentaires (programme). Le microprocesseur remplit deux
fonctions essentielles : le traitement des données et le contrôle du système.
L’unité centrale de traitement (p) (UCT, CPU : Central Processing Unit) est constituée :
➢ D’une unité arithmétique et logique (UAL, ALU : Arithmetic and Logic Unit) :
L’UAL est constituée d'un circuit logique combinatoire qui reçoit deux opérandes A (An...A1 A0) et
B (Bn . . . B1 B0) et produit le résultat S (Sm . . . S1 S0) selon l'indication appliquée sur l'entrée C
(Ck… C1 C0). Les opérations réalisées peuvent être soit arithmétiques, S=A+B, S=A-B, S=AxB …
ou
logiques S=A OU B, S=A ET B, S= A XOR B …

Figure 2: L’UAL

➢ De registres : zones de stockage des données de travail de l’UAL (opérandes, résultats


intermédiaires) ou d’autres données (adresses, transferts). Les registres peuvent être de 8 ou 16 bits ;

2
P et C : Chapitre 1 : Architecture d’un Microprocesseur Dr. METIDJI

➢ D’unité de contrôle :
Elle permet de "séquencer" le déroulement des instructions. Elle effectue la recherche en mémoire
de l'instruction, le décodage, l'exécution et la préparation de l'instruction suivante. L'unité de
commande élabore tous les signaux de synchronisation internes ou externes (bus des commandes) au
microprocesseur.
3-2 L’Horloge :
C'est l'horloge qui génère les signaux qui permettent le cadencement et la synchronisation de toutes
les opérations. C'est un signal carré qui a une fréquence fixe (3 Ghz par exemple), à chaque coup
(front) d'horloge, le microprocesseur réalise une tâche élémentaire. L'exécution d'une instruction
nécessite plusieurs coups d'horloges.

3-3 la mémoire centrale :


La mémoire centrale contient :
• le programme à exécuter : suite d’instructions élémentaires (ROM);
• les données à traiter (RAM).

3-4 L’unité d’entrées/sorties (E/S) est un circuit intégré permettant au microprocesseur de


communiquer avec l’environnement extérieur (périphériques) : clavier, écran, imprimante, modem,
disques, processus industriel, ...
Les interfaces d’E/S sont connectées au microprocesseur à travers les bus d’adresses, de données et
de commandes.

3-5 L’unité de transfert : est le support matériel de la circulation des données. C’est un circuit
qui permet de géré selon les signaux de contrôle généré par le microprocesseur le sens de direction
de données (écriture ou lecture), démultiplexage du bus de données et d’adresse, l’emplacement de
l’écriture et de lecture (mémoire ou E/S)….

Un microprocesseur consiste en une unité centrale de traitement (UAL + registres + unité de


contrôle) entièrement contenue dans un seul circuit intégré. L’ensemble microprocesseur, mémoire,
unité E/S et périphériques constitue un microcalculateur ou un microordinateur.

3-4 Circulation de l’information dans un calculateur :


La réalisation matérielle des calculateurs est généralement basée sur l’architecture de Von
Neumann :

Figure 3: Le transfert de l'information dans un calculateur

3
P et C : Chapitre 1 : Architecture d’un Microprocesseur Dr. METIDJI

Le microprocesseur échange des informations avec la mémoire et l’unité d’E/S, sous forme de mots
binaires, au moyen d’un ensemble de connexions appelé bus. On appelle Bus, en informatique, un
ensemble de liaisons physiques (câbles, pistes de circuits imprimés, ...) pouvant être exploitées en
commun par plusieurs éléments matériels afin de communiquer. Un bus permet de transférer des
données sous forme parallèle, c’est-à-dire en faisant circuler n bits simultanément.

Les microprocesseurs peuvent être classés selon la longueur maximale des mots binaires
qu’ils peuvent échanger avec la mémoire et les E/S : microprocesseurs 8 bits, 16 bits, 32 bits, ...
Le bus peut être décomposé en trois bus distincts :

• le bus d’adresses :
Permet au microprocesseur de spécifier l’adresse de la case mémoire ou l’adresse d’un port d’E/S à
lire ou à écrire.
• le bus de données :
Il permet de véhiculer des données du microprocesseur vers un composant (mémoire, E/S,..) ou d'un
composant vers le microprocesseur. Il est donc bidirectionnel. Le nombre de fils de ce bus varie suivant
les microprocesseurs (8 / 16 / 32 / 64 bits). Dans la littérature, les différents fils de ce bus sont appelés
D0, D1, ..., Dp-1, si le bus a "p" fils.
• le bus de commande :
Le bus des commandes est constitué d'un ensemble de fils de "commandes", permettant la
synchronisation et la commande des boîtiers mémoires et les entrées/sorties par le microprocesseur.

4- Le microprocesseur Intel 8086 :


Le microprocesseur Intel 8086 est un microprocesseur 16 bits, apparu en 1978. C’est le premier
microprocesseur de la famille Intel.
Le processeur 8086 d'Intel est à la base de la majorité des processeurs actuels. Les processeurs
successifs (de PC) se sont en effet construits petit à petit en ajoutant à chaque processeur des
instructions et des
fonctionnalités supplémentaires, mais en conservant à chaque fois les spécificités du processeur
précédent.

4-1 Description externe du 8086 :


Le 8086 se présente sous la forme d’un boîtier DIP (Dual In-line Package) à 40 broches comme la
montre la figure suivante :

4
P et C : Chapitre 1 : Architecture d’un Microprocesseur Dr. METIDJI

4-2 Description des signaux du 8086 :


CLK : entrée du signal d’horloge qui cadence le fonctionnement du microprocesseur. Ce signal
provient d’un générateur d’horloge : le 8284.

RESET : entrée de remise à zéro du microprocesseur. Lorsque cette entrée est mise à l’état haut
pendant au moins 4 périodes d’horloge, le microprocesseur est réinitialisé : il va exécuter
l’instruction se trouvant à l’adresse FFFF0H de la mémoire centrale. Le signal de RESET est fourni
par le générateur d’horloge.

READY : entrée de synchronisation avec la mémoire. Ce signal provient également du générateur


d’horloge.

̅̅̅̅̅̅̅̅: entrée de mise en attente du microprocesseur d’un évènement extérieur.


𝐓𝐄𝐒𝐓

5
P et C : Chapitre 1 : Architecture d’un Microprocesseur Dr. METIDJI

MN/ ̅̅̅̅̅
𝐌𝐗: entrée de choix du mode de fonctionnement du microprocesseur :
• mode minimum (MN/MX̅̅̅̅ = 1) : le 8086 fonctionne de manière autonome, il génère lui-même le bus
de commande (RD, WR, ...) ;
• mode maximum (MN/MX ̅̅̅̅ = 0) : ces signaux de commande sont produits par un contrôleur de bus,
le 8288. Ce mode permet de réaliser des systèmes multiprocesseurs.

NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non
Maskable Interrupt) : interruption prioritaire.
̅̅̅̅̅̅̅
𝐈𝐍𝐓𝐀 : Interrupt Acknowledge, indique que le microprocesseur accepte l’interruption.

HOLD et HLDA : signaux de demande d’accord d’accès au bus de D/A en cas de mode de
fonctionnent max.

S0 à S7 : signaux d’état indiquant le type d’opération en cours sur le bus.


A16/S3 à A19/S6 : 4 bits de poids fort du bus d’adresses, multiplexés avec 4 bits d’état.
AD0 à AD15 : 16 bits de poids faible du bus d’adresses, multiplexés avec 16 bits de données. Le
bus A/D est multiplexé (multiplexage temporel) d’où la nécessité d’un démultiplexage pour obtenir
séparément les bus d’adresses et de données :
• 16 bits de données (microprocesseur 16 bits) ;
• 20 bits d’adresses, d’où 220 = 1 Mo d’espace mémoire adressable par le 8086.
Le démultiplexage des signaux AD0 à AD15 (ou A16/S3 à A19/S6) se fait en mémorisant
l’adresse lorsque celle-ci est présente sur le bus A/D, à l’aide d’un verrou (latch), ensemble de
bascules D. La commande de mémorisation de l’adresse est générée par le microprocesseur : c’est le
signal ALE, Address Latch Enable.
Circuit de démultiplexage A/D :

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 ;

6
P et C : Chapitre 1 : Architecture d’un Microprocesseur Dr. METIDJI

• les signaux de lecture (RD) ou d’écriture (WR) ne sont générés par le microprocesseur que lorsque
les données sont présentes sur le bus A/D.
̅̅̅̅
𝐑𝐃: Read, signal de lecture d’une donnée.
̅̅̅̅̅
𝐖𝐑: Write, signal d’écriture d’une donnée.
Chronogramme du bus A/D :

̅̅̅ : Memory/Input-Output, indique si le 8086 adresse la mémoire (M/IO


M/𝐈𝐎 ̅̅̅ = 1) ou les
̅̅̅ = 0).
entrées/sorties (M/IO

̅̅̅̅̅̅
𝐃𝐄𝐍 : Data Enable, indique que des données sont en train de circuler sur le bus A/D (équivalent de
ALE pour les données).

DT/𝐑̅ : Data Transmit/Receive, indique le sens de transfert des données :


̅ = 1 : données émises par le microprocesseur (écriture) ;
• DT/R
̅ = 0 : données reçues par le microprocesseur (lecture).
• DT/R

7
P et C : Chapitre 1 : Architecture d’un Microprocesseur Dr. METIDJI

Les signaux ̅̅̅̅̅̅


DEN et DT/R ̅ sont utilisés pour la commande de tampons de bus (buffers). Exemples
de tampons de bus : circuits transmetteurs bidirectionnels 8286 ou 74245.

Figure 4: tampons de bus

̅̅̅̅̅̅ : Bus High Enable, signal de lecture de l’octet de poids fort du bus de données.
𝐁𝐇𝐄
Le 8086 possède un bus d’adresses sur 20 bits, d’où la capacité d’adressage de 1 Mo ou 512 Kmots
de 16 bits (bus de données sur 16 bits).
Le méga-octet adressable est divisé en deux banques de 512 Ko chacune : la banque inférieure (ou
paire) et la banque supérieure (ou impaire). Ces deux banques sont sélectionnées par :
• A0 pour la banque paire qui contient les octets de poids faible ;
•̅̅̅̅̅̅
BHE pour la banque impaire qui contient les octets de poids fort.

8
P et C : Chapitre 1 : Architecture d’un Microprocesseur Dr. METIDJI

Figure 5: organisation de la mémoire par le 8086

Seuls les bits A1 à A19 servent à désigner une case mémoire dans chaque banque de 512 Ko. Le
microprocesseur peut ainsi lire et écrire des données sur 8 bits ou sur 16 bits :

Réalisation des deux banques avec plusieurs boitiers mémoire :

9
P et C : Chapitre 1 : Architecture d’un Microprocesseur Dr. METIDJI

Figure 6: adressage de la mémoire par le 8086

4-3 Description interne du 8086 :


Le 8086 est constitué de deux unités internes distinctes fonctionnent en parallèle : l'UE (Unité
d'Exécution) ou l’unité de calcul et l'UIB (Unité d'Interfaçage avec le Bus) ou l’unité de contrôle.

10
P et C : Chapitre 1 : Architecture d’un Microprocesseur Dr. METIDJI

• l’unité d’interface de bus (BIU) : Le rôle de l'UIB est de chercher les instructions en mémoire,
les stocker dans une file d’attente, et d'établir les transmissions avec les bus du système. Elle est
constituée principalement d’un décodeur, d’un séquenceur et des registres qui participent au
contrôle et la gestion de l’exécution du programme.
Le décodeur
C'est lui qui va "décoder" l'instruction contenue dans RI (C'est là où le CPU stocke l'instruction en
cours d'exécution) et générer les signaux logiques correspondant et les communiquer au séquenceur.
Le séquenceur
Il gère le séquencement des opérations et génère les signaux de commande qui vont activer tous les
éléments qui participeront à l'exécution de l'instruction et spécialement l'ALU.

• l’unité d’exécution (EU) : exécute les instructions contenues dans la file d’attente.

Les deux unités fonctionnent simultanément, d’où une accélération du processus d’exécution d’un
programme (fonctionnement selon le principe du pipe-line).
Le microprocesseur 8086 contient 14 registres répartis en 4 groupes :

11
P et C : Chapitre 1 : Architecture d’un Microprocesseur Dr. METIDJI

Tous les registres et le bus interne du 8086 sont structurés en 16 bits.


Vu de l'utilisateur, le 8086 comprend 3 groupes de 4 registres de 16 bits, un registre d'état de 9
bits et un compteur programme de 16 bits non accessibles par l'utilisateur. Certains registres sont
découpés en deux et on peut accéder séparément à la partie haute et à la partie basse.
4-3-1 Les registres généraux : 4 registres de 16bits.
Les registres généraux participent aux opérations arithmétiques et logiques ainsi qu'à l'adressage.
Chaque demi-registre est accessible comme registre de 8 bits.
AX : Accumulateur
• Usage général (opérations AL, stocker temporairement des données),
• Obligatoire pour la multiplication et la division,
• Ne peut pas servir pour l'adressage
BX : Base
• Usage général, (opérations AL, stocker temporairement des données),
• Adressage, (Par défaut, son offset est relatif au segment DS)
CX : Comptage et calcul
• Usage général, (opérations AL, stocker temporairement des données),
• Utilisé par certaines instruction comme compteur.
• Ne peut pas servir pour l'adressage
DX : Data
• Usage général, (opérations AL, stocker temporairement des données),
• Dans la multiplication et la division 16 bits, il sert comme extension au registre AX
pour contenir un nombre 32 bits,
• Ne peut pas servir pour l'adressage
4-3-2 Les registres de pointeurs et d’index (registres d’adressages) : 4 registres de 16
bits.
Ces registres de 16 bits permettent l'adressage d'un opérande à l'intérieur d'un segment de 64 ko
(216 positions mémoires). Les pointeurs et les index contiennent des adresses de cases mémoire.
Pointeurs :
SP : Stack Pointer, pointeur de pile (la pile est une zone de sauvegarde de données en cours
d’exécution d’un programme) :
• Utilisé pour l'accès à la pile. Pointe sur la tête de la pile,
• Par défaut, son offset est relatif à SS.

12
P et C : Chapitre 1 : Architecture d’un Microprocesseur Dr. METIDJI

BP : Base Pointer, pointeur de base, utilisé pour adresser des données sur la pile :
• Adressage comme registre de base, (Par défaut, son offset est relatif à SS),

Index :
SI : Registre d'index (source)
• Adressage comme registre d’index, (Par défaut, son offset est relatif à DS)
• Utilisé par instruction de déplacement de donnés comme index de l'opérande source.

DI : Registre d'index (destination)


• Adressage comme registre d’index, (par défaut, son offset est relatif à DS)
• Utilisé par instruction de déplacement de donnés comme index de l'opérande destination.
4-3-3 Pointeur d’instruction et indicateurs (flags) : 2 registres de 16 bits.
Pointeur d’instruction IP : on l’appelle aussi compteur de programme (CP) ou compteur ordinal,
Le compteur programme (PC : program counter) est un registre (pointeur) qui contient l'adresse de la
case mémoire où est stockée la prochaine instruction qui devra être chargé dans le processeur pour
être analysé et exécuté. Au début de l'exécution d'un programme, le PC est initialisé par le système
d'exploitation ou par l’utilisateur à l'adresse mémoire où est stockée la première instruction du
programme. Le compteur programme est incrémenté automatiquement chaque fois qu'une instruction
est chargée
dans le processeur.
Registre d’état ou indicateur (flags) : Six bits reflètent les résultats d'une opération arithmétique
ou logique et 3 participent au control du processeur.

C : (Carry) indique qu’il y a une retenue sur une opération 8 bits ou 16 bits. Ce flag peut être
utilisé par des instructions de saut conditionnel, des calculs arithmétiques en chaîne ou dans des
opérations de rotation.
P : (Parité) indique que le résultat est pair quand il est mis à1. Ce flag est utilisé avec certains sauts
conditionnels.
A : (retenue Arithmétique auxiliaire) indique une retenue auxiliaire sur les 4 bits (digit) de poids
faible.
Z : (Zéro) Indique que le résultat d'une opération arithmétique ou logique est nul. Il est utilisé dans
plusieurs instructions de sauts conditionnels.
S : (Signe) reproduit le bit de poids fort d'une quantité signée sur 8 bits ou sur 16 bits. L'arithmétique
signée fonctionne en complément à 2. Ce flag sert lors de sauts conditionnels :
S=0 : positif,
S=1 : négatif.
T : (Trap) met le CPU en mode pas à pas pour faciliter la recherche des défauts d'exécution.
I : (Interruption) autorise ou non la reconnaissance des interruptions :
I = 0 → Interruptions autorisées
I = 1 → Interruptions non autorisées

13
P et C : Chapitre 1 : Architecture d’un Microprocesseur Dr. METIDJI

D : (Direction) fixe la direction de l'auto-inc/décrémentation de SI et DI lors des instruction


incrémentant ou décimentant automatiquement les registes SI et DI :
D = 0 → Incrémentation des index
D = 1 → décrémentation des index
O : (Overflow) indique un dépassement de capacité quand on travaille avec des nombres signés.
Comme par exemple si la somme de 2 nombres positifs donne un nombre négatif ou inversement.
(40h + 40h = 80h et O=1).
4-3-4 Registres de segments : 4 registres de 16 bits.
Ces registrent sont combiné avec les registres d’offset (pointeurs et index) pour former des
adresses permettant au processeur 8086 d’adresser l’ensemble de la mémoire. Une case mémoire est
repérée par une adresse de la forme RS :RO. Le registre segment est placé au début d’une zone
mémoire de 64Ko, ensuite on fait varier le registre d’offset qui précise l’adresse relative par rapport
à cette position.
CS : Code Segment
Définit le début de la mémoire programme (l’adresse de la première instruction de programme). Les
adresses des différentes instructions du programme sont relatives à CS.
DS : Data Segment
Début de la mémoire de données (l’adresse de la première case mémoire de données) dans laquelle
sont stockées toutes les données traitées par le programme.
SS : Stack Segment
Début de la pile.
La pile est une zone mémoire gérée d’une façon particulière. Elle est organisée comme une pile
d’assiettes. On pose et on retire les assiettes toujours sur le haut de la pile. Un seul registre d’adresse
suffit donc pour la gérer, c’est le stack pointer SP. On dit que c’est une pile LIFO (Last IN, First
Out).
Empiler une donnée : sauvegarder une donnée sur le sommet de la pile.
Dépiler une donnée : retirer une donnée du sommet de la pile.
ES : Extra Segment
Début d'un segment auxiliaire pour données.

4-4 L’organisation de la mémoire (octet) par le 8086 :


Le 8086 possède 20 bits d'adresse, il peut donc adresser 220 octets soit 1 Mo. L'adresse de la
première case mémoire est 0000 0000 0000 0000 0000 celle de la dernière casse est 1111 1111 1111
1111 1111 1111. Soit en hexadécimal 00000 à FFFFF. Le problème qui se pose est comment
représenter ces adresses au sein du µP puisque les registres ne font que 16 bits soit 4 digits au
maximum en hexadécimal. La solution adoptée par Intel a été la suivante :
Puisqu’avec 16 bits en peut adresser 216 octets = 65535 octets = 64 ko, La mémoire totale adressable
de 1 Mo est fractionnée en 16 pages de 64 ko appelés segments. Ainsi, une case mémoire est repérée
par le 8086 au moyen de deux registres sur 16 bits :
• l’adresse d’un segment ;
• un déplacement ou offset (appelé aussi adresse effective) dans ce segment.
Cette méthode de gestion de la mémoire est appelée segmentation de la mémoire.
14
P et C : Chapitre 1 : Architecture d’un Microprocesseur Dr. METIDJI

Une adresse se présente toujours sous la forme segment:offset est une adresse logique.
L’adresse d’une case mémoire donnée sous la forme d’une quantité sur 20 bits (5 digits hexa) est
appelée adresse physique car elle correspond à la valeur envoyée réellement sur le bus d’adresses
A0 - A19.

A titre d'exemple, procédons au découpage de la mémoire en 16 segments qui ne se chevauche pas.

Considérons la case mémoire d'adresse 20350h, appelée adresse absolue ou adresse linéaire ou
adresse physique. Cette case mémoire se situe dans le segment 2, son adresse relative à ce segment est
350, on peut donc la référencer par le couple segment:offset = 20000:350, Se pose maintenant le
problème de la représentation de cette adresse au sein du CPU car les registres de 16 bits ne peuvent
contenir que 4 digits. S'il n'y a aucun problème pour représenter 350 dans un registre d'offset, mais on
ne peut pas représenter 20000 dans un registre segment. La solution adoptée par Intel est la suivante :
- Dans le registre segment, on écrit l'adresse segment sans le chiffre (4 bits) de poids faible.
- Dans le registre d'adressage (d'offset) on écrit l'adresse relative dans le segment.
- Pour calculer l'adresse absolue qui sera envoyée sur le bus d'adresse de 20 bits, le CPU
procède à l'addition des deux registres après avoir décalé le registre segment d'un chiffre (4 bits) à
gauche :

15
P et C : Chapitre 1 : Architecture d’un Microprocesseur Dr. METIDJI

Dans notre exemple, l'adresse de la case mémoire considérée devient 2000:350 soit :
Segment = 2000
Offset = 350
L'adresse absolue (physique) est calculée ainsi :

On peut aussi calculer l’adresse physique l’expression suivante :


adresse physique = 16 × segment + offset
car le fait d’injecter 4 zéros en poids faible du segment revient à effectuer un décalage de 4 positions
vers la gauche, c’est à dire une multiplication par 24 = 16.
Le registre CS est associé au pointeur d’instruction IP, ainsi la prochaine instruction à exécuter se
trouve à l’adresse logique CS : IP. De même, les registres de segments DS et ES peuvent être
associés à un registre d’index DS : SI, ES : DI. Le registre de segment de pile peut être associé aux
registres de pointeurs SS : SP ou SS : BP.
Mémoire accessible par le 8086 à un instant donné :

16
P et C : Chapitre 1 : Architecture d’un Microprocesseur Dr. METIDJI

Figure 7: organisation de la mémoire par le 8086

Remarque :
une seule règle à respecter lors du choix de l’adresse d'un segment est que le digit de plus faible
poids soit nul. Nous pouvons donc commencer un segment tous les 16 octets.

17

Vous aimerez peut-être aussi