A-Préliminaires B - Présentation de CPU 8086 C - Registres de CPU 8086 Icroprocesseur (CPU) 8086
A-Préliminaires B - Présentation de CPU 8086 C - Registres de CPU 8086 Icroprocesseur (CPU) 8086
A-Préliminaires B - Présentation de CPU 8086 C - Registres de CPU 8086 Icroprocesseur (CPU) 8086
A- Préliminaires
B- Présentation de CPU 8086
C- Registres de CPU 8086
B-1- Les registres généraux
B-2- Les registres d'adressage
B-3- Les registres de segment
B-4- Le registre d'état
D- Gestion de la mémoire par CPU 8086
1
Préliminaires
2
Préliminaires
Représentation et stockage en mémoire
3
Microprocesseur 8086
4
Représentations interne d’un 8086
5
Microprocesseur 8086
6
Registres du CPU 8086
7
Registres du CPU 8086
8
Registres : Les registres généraux :
Groupe de données:
AX : Registre accumulateur
BX : Registre d'adresses de base
CX : Registre compteur
DX : Registre de données
9
Utilités des registres généraux
Si nous manipulons des nombres codés sur 16 bits (1 mot
mémoire), nous utilisons 4 registres généraux:
Exemples:
AH contient l'octet de poids fort du registre AX.
Une pile est une zone mémoire qui permet de conserver de manière
temporaire des données (par exemple, l’état des registres lors d’un
appel de procédure). Elle est organisée comme une pile d’assiettes.
On pose et on retire les assiettes toujours sur le haut de la pile. 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
Nous utilisons 2 registres pointeurs:
14
Registres de segment
Une instruction dans le CPU est composée de
plusieurs segments. Un segment qui
désigne le code du programme, un segment
qui désigne les données, un segment qui
désigne l’organisation des appels, ….. Une
instruction contient donc tous ses
segments, mais sous forme d’adresse
pointant vers la mémoire. Pour accéder à sa
mémoire centrale, le 80x86 dispose de
registres de segment suivants:
Registres de segment
16
Registres de segment
17
Le registre IP
18
Le registre Flag
Le registre d'état (Flag) : indique l’état de CPU
C'est un registre 16 bits, chaque bit s'appelle un
flag (ou un indicateur) et peut prendre la valeur 1 ou 0.
19
Le registre Flag
20
CARRY Flag : ce flag est positionné à « 1 »
lorsque on a un débordement (retenue).
21
PARITY Flag : si le résultat de l'opération contient
un nombre pair de 1 alors PF=1 sinon PF=0.
22
SIGN Flag : SF est positionné à 1 si le bit de
poids fort du résultat d'une addition ou
soustraction est 1 ; sinon SF=0. SF est
utile lorsque l'on manipule des entiers
signés, car le bit de poids fort donne alors
le signe du résultat. Exemples (sur 8 bits):
23
OVERFLOW Flag: ce flag est à « 1 »
lorsqu'on a un débordement signé.
24
Direction Flag : pour auto incrémenter ou auto
décrémenter le SI et le DI. Ce flag est utilisé par
quelques instructions pour traiter les chaînes de
données, lorsque ce drapeau est placé à 0, la chaîne
est traitée octet par octet en incrémentant, lorsque ce
drapeau est placé à 1, la chaîne est traitée octet par
octet en décrémentant. Autrement dit DF indique le
sens de progression des registres d'index SI et DI lors
des instructions de traitements de chaînes. DF=1
adresses décroissantes, DF=0 adresses croissantes
25
Interrupt Flag: pour masquer les interruptions venant
de l'extérieur, ce bit est mis à 0, dans le cas
contraire le microprocesseur reconnaît
l'interruption de l'extérieur.
26
Gestion de la mémoire par CPU 8086
27
L'espace mémoire est divisé en segments. Un
segment est une zone mémoire de 64 ko definie par
son adresse de départ ( doit être un multiple de 16).
28
Pour adresser une case mémoire, on utilise
deux nombres. Le premier est appelé
adresse de segment, le second adresse
d'offset.
29
La donnée d'un couple (segment, offset )
définit une adresse logique notée sous la
forme segment : offset
30
Correspondance entre adresse logique et adresse physique
31
A un instant donné, le CPU 8086 a accès à 4 segments
dont les adresses sont stockées dans les registres de
segment:
32
Le registre CS est associé au registre IP.
Ainsi, la prochanie instruction à exécuter a l'adresse
logique CS:IP
33
On vous donne la mémoire accessible par le 8086 à un instant
34