GIF-1001
Cours 8, p.1
Etienne Tremblay
Ordinateurs, Structure
et Applications
GIF-1001
Université Laval, Hiver 2012
Cours 8, Registres, Mémoire et
Instructions Arithmétiques/Logiques
du 8086
GIF-1001
Cours 8, p.2
Registres et drapeaux
Tiré du didacticiel de EMU8086
GIF-1001
Cours 8, p.3
Les registres
AX: Registre accumulateur 16 bits ( composé de deux registres 8 bits,
AH et AL).
BX: Registre d'adresses de base 16 bits (composé de deux registres 8
bits, BH et BL).
CX: Registre compteur 16 bits (composé de deux registres 8 bits, CH et
CL).
DX: Registre de données 16 bits (composé de deux registres 8 bits, DH
et DL).
SI: Registre d'index source 16 bits.
DI: Registre d'index destination 16 bits.
BP: Registre pointeur de base 16 bits.
SP: Registre pointeur de pile 16 bits.
IP: Instruction pointeur 16 bits.
Tiré du didacticiel de EMU8086
GIF-1001
Cours 8, p.4
Les drapeaux
Carry Flag (CF) – Ce flag est à 1 lorsqu’il y a une retenue (carry) dans une
addition -ou un emprunt (borrow) lors d’un soustraction- sur le bit le plus
significatif.
Zero Flag (ZF) - Ce flag est à 1lorsque le résultat est zéro.
Sign Flag (SF) - Ce flag est à 1lorsque le résultat est négatif.
Overflow Flag (OF) - Ce flag est à 1lorsqu'un débordement a lieu.
Parity Flag (PF) - Ce flag est à 1lorsque le résultat est un nombre pair de bits.
me si le résultat est un Word (mot), uniquement les 8 bits de poids faible sont
analysés !
Auxiliary Flag (AF) - Ce flag est à 1lorsqu'un bordement non signé a lieu sur
les 4 bits de poids faible.
Interrupt enable Flag (IF) - Lorsque ce flag est à 1, le processeur réagit aux
interruptions des dispositifs externes.
Direction Flag (DF) - 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.
Les drapeaux sont tous contenus dans un unique registre de status.
GIF-1001
Cours 8, p.5
Mémoire et registres segments (1)
Le 8086 a 20 lignes d’adresses et peut
donc accéder à une mémoire de 2^20
adresses, soit 1Mo ou FFFFh.
Chaque case de mémoire contient 1
byte.
Comme les registres n’ont que 16 bits,
un registre seul ne peut qu’accéder à
64Ko de mémoire.
Les registres segments permettent
d’accéder à toutes les adresses de la
mémoire.
Il y a 4 segments: un segment de code
(le programme), 2 segments de
données (les variables) et 1 segment
pour la pile (voir plus loin).
La convention Little Endian est utilisée
pour stocker des mots de 2 bytes
ROM
256K
C0000h
FFFFFh
FFFF0h
BFFFFh
A0000h
9FFFFh
VIDEO RAM
128K
RAM
640K
00000h
003FFh
Note: 64K = 2^(6+10) = FFFF+1
Segment de données 64K
Segment de données extra 64K
Segment de code 64K
Pile 64K
Code pour reset
Table d'interruptions
DS*16
16DS + FFFF
CS*16
ES*16
SS*16
F4000h
Code pour les interruptions
Info système (00400h à 004FFh)
1 / 20 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !