Академический Документы
Профессиональный Документы
Культура Документы
Le microprocesseur 80286
CS SS
ES
DS IP SP
3. Définition des segments dans un programme :
a) Les directives : ce sont des pseudo instructions permettant la définition et l’initialisation
de variables utilisables dans le programme (et qui ne possèdent donc pas de code
machine).
PARA Paragraphe : indique que le segment commence à une adresse divisible par 16
FAR La procédure appelée est dans un autre segment que celui du programme
; Programme
PILE ENDS
DONNEES ENDS
En mode réel, le 286 utilise des adresses réelles de 20 bits, obtenues en ajoutant une adresse
effective (obtenue différemment pour chaque mode d’adressage) de 16 bits, ajoutée au
contenu d’un registre segment multiplié par 16 ; les registres segments utilisés par défaut sont :
CS pour des adresses d’instruction, DS ou SS pour des adresses de données, et SS pour des
adresses de pile.
On peut distinguer le modes d’adressage suivants:
Adresse
Reg seg x 16
+ opérande
- Direct registre : MOV AL, BL ; les deux opérandes sont dans les
registres
- indirect par registre : l’instruction spécifie un registre lequel contient l’adresse de
l’opérande
MOV AX, [SI] ; l’adresse effective est dans SI
instruction
Code reg
BX Reg seg x 16
BP
SI Registre
Ou + opérande
DI
- indirect par base: c’est un mode d’adressage indirect nécessitant un calcul ; l’adresse
effective est obtenue en ajoutant un déplacement au contenu du registre de base BX, ou BP
utilisé
MOV AX , [BX+37H]
instruction
Reg seg x 16
BX
Ou
BP Registre
+ opérande
Reg seg x 16
SI
Ou
DI Registre
+ opérande
- Par base indexé :pour calculer l’adresse effective, on ajoute les contenu du registre de
base, et du registre d’index utilisés, au déplacement
MOV AX, [BX+SI+37H ] ; ou MOV AX, [BX][SI] 37H
instruction
Reg seg x 16
SI
Ou
DI Registre
+ opérande
BX
ou Registre
BP
- Adressage des chaînes : fait l automatiquement appel aux registres d’index, SI pour la
chaîne source, et DI pour la chaîne destination
b) Adressage distinct : les périphériques possèdent dans ce cas des adresses dans l’espace
des E/S, activées par les instructions IN et OUT uniquement
b.1 adressage distinct direct : dans ce cas l’instruction comprend l’adresse du port d’E/S
réservé au périphérique, sur 8 bits ; on peut donc choisir un parmi 256 ports.
b.2 adressage distinct indirect via DX : l’adresse du port réservé au périphérique se trouve
dans le registre à 16 bits DX. On peut donc désigner un parmi 65536 ports.
Exemple :
MOV AX, ES :[DI] ; dans ce cas le registre de segment utilisé avec DI pour
calculer l’adresse réelle, sera ES et non DS.