Adressage des registres
Les deux opérandes sont des registres : from
register to register
N’est pas vraiment un mode d’adressage puisqu’il
n’accède pas à la mémoire
Mode d’adressage très rapide : seul le bus interne est
utilisé
L'opération se fait sur un ou 2 registres
Exemples :
INC AX ; incrémenter le registre AX
MOV AX, BX ; Copier le contenu de BX dans AX
23/08/2010 Khaled Hassine 17
Adressage immédiat
Pas d’accès à la mémoire :
n’est pas vraiment un mode d’adressage
très rapide : seul le bus interne est utilisé
Le deuxième opérande est directement codé dans
l’instruction
Inconvénient : valeur figée dans l'instruction =>
la modifier oblige à modifier le programme.
Exemple :
MOV AH, 30H
23/08/2010 Khaled Hassine 18
La segmentation : synoptique
CS : Code Segment
–Segment de code,
–Stocke les instructions
DS : Data Segment
–Segment de données,
–Réservation de la mémoire pour
les variables
ES : Extra Segment
–Utilisation spécifique, sur
demande uniquement
–Souvent utilisé avec DI
SS : Stack Segment
–Segment de pile
UAL de calcul d’adresse
23/08/2010 Khaled Hassine 19
Les registres segments et associations
Chaque registre segment est associé à un ou plusieurs registres d’offset afin de
former une adresse physique réelle :
Une adresse logique est exprimée en hexadécimal sous la forme
SSSS:OOOOoù SSSS est le segment et OOOO est l’offset. La valeur de
l’adresse physique sur 20 bits est :
SSSS0H+OOOOH = SSSS*16+OOOO.
Exemple : pour les instructions, CS:IP est utilisé.
CS = 1111H
IP = AAAAH.
L’adresse de l’instruction pointée par IP est 11110H+ 0AAAAH = 1BBBAH.
Pour les instructions affectant la pile (PUSH, POP, CALL, RET, etc.), SS:SP
est utilisé.
DS:SI et ES:DI sont habituellement utilisés pour travailler sur des tableaux ou
des chaînes de caractères.
23/08/2010 Khaled Hassine 20
Registre segment Registres associés
CS IP
SS SP et/ou BP
DS BX et/ou SI et/ou DI
ES