III.
Adressage mémoire
1. Représentation et stockage
2. Mémoires segmentée
3. Exemple
Chapitre 4. Présentation du μp 8086 et environnement Emu8086
III. Adressage mémoire
1. Représentation et stockage
▪ Bit vs Byte? Bit={0,1} Byte (Anglais) = 8 bits = 1 Octet
▪ Données sur plusieurs octets?
L'architecture du 8086 est ???
18
1
Chapitre 4. Présentation du μp 8086 et environnement Emu8086
III. Adressage mémoire
1. Représentation et stockage
L'architecture du 8086 est little-endian.
19
Chapitre 4. Présentation du μp 8086 et environnement Emu8086
III. Adressage mémoire
2. Mémoires segmentée
▪ L'espace mémoire adressable (20 bits pour le 8086) a une taille
maximale de 220 bits=1 Mo, et nécessite donc des registres 20 bits.
▪ On dispose de registres de 16 bits seulement !!!
▪Comment manipuler des adresses 20 bits
en utilisant des registres 16 bits ???
20
2
Chapitre 4. Présentation du μp 8086 et environnement Emu8086
III. Adressage mémoire
2. Mémoires segmentée
Solution
▪ Utiliser des segments dans la mémoire:
➢ Chaque segment est définie par son adresse de départ qui doit être un
multiple de 16.
➢ Chaque segment est de taille maximale 216 mots = 216 octets = 64 Ko.
➢ Chaque programme peut utiliser plusieurs segments.
▪ Utiliser deux registres 16 bits pour représenter une adresse physique 20 bits:
➢ Un registre pour l’adresse du segment
➢ Un registre pour le décalage du mot dans le segment
21
Chapitre 4. Présentation du μp 8086 et environnement Emu8086
III. Adressage mémoire
2. Mémoires segmentée
▪ L'espace mémoire physique
adressable (de l’adresse 00000H à
FFFFFH) est divisé en plusieurs
segments.
▪ Un programme peut utiliser des
segments mémoire pour :
➢ Le code
➢ Les données
➢ La pile
➢ Ou un segment Extra
22
3
Chapitre 4. Présentation du μp 8086 et environnement Emu8086
III. Adressage mémoire
2. Mémoires segmentée
Adresse d’un segment
▪ Les 4 bits de poids faible de l’adresse d’un segment (qui doit être
multiple de 16)10) sont donc des zéro.
▪ En hexadécimale, l’adresse 5 digits d’un segment se termine par 0.
▪ On peut donc représenter l'adresse d'un segment avec seulement les
16 bits de poids fort, les 4 bits de poids faible étant implicitement à 0.
▪ Exemples:
➢ Si le registre segment CS doit pointer sur l’adresse F1680,
alors il doit contenir l’adresse F168
➢ Si le registre segment DS doit pointer sur l’adresse FB520,
alors il doit contenir l’adresse FB52 23
Chapitre 4. Présentation du μp 8086 et environnement Emu8086
III. Adressage mémoire
2. Mémoires segmentée
Adresse de décalage (Offset)
▪ Pour désigner une case mémoire parmi les cases contenues dans un
segment, on parle de décalage ou offset.
▪ Le décalage d’un mot dans un segment est
désigné par une information sur 16 bits.
▪ Ainsi, une case mémoire réelle est repérée
dans le microprocesseur 8086 par deux
informations sur 16 bits chacune:
➢ l'adresse d'un segment;
➢ un décalage 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.
24
4
Chapitre 4. Présentation du μp 8086 et environnement Emu8086
III. Adressage mémoire
2. Mémoires segmentée
▪ La donnée d'un couple (segment, offset) définit une adresse logique,
notée sous la forme segment: offset.
▪ 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.
▪ l'adresse physique se calcule par :
▪ Adresse physique = 16 x 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.
25
Chapitre 4. Présentation du μp 8086 et environnement Emu8086
III. Adressage mémoire
3. Exemples
Trouver l’adresse physique de l’adresse logique 20FF:1000
➢ Adresse du segment = 20FFh
➢ Décalage offset = 1000h
➢ Adresse physique = segment*16+Offset
= 20FF0+1000
= 21FF0h
Exemples
- CS:IP : adresse de la prochaine instruction à exécuter
- DS:SI : adresse d'une donnée
- SS:SP : adresse du haut de la pile
26