Académique Documents
Professionnel Documents
Culture Documents
2 La fonction de transfert
La destination étant un registre ou une case mémoire, la source peut être une valeur immédiate, le contenu d’un
registre ou d’une case mémoire.
Remarque : le microprocesseur 8086 n’autorise pas les transferts de mémoire vers mémoire (pour ce faire, il faut
passer par un registre intermédiaire).
3 Exemples
1) MOV AX,BX
Charge le contenu du registre BX dans le registre AX. Dans ce cas, le transfert se fait de registre à registre.
Le mode d’adressage est l’adressage par registre.
2) MOV AL,12H
Charge le registre AL avec la valeur immédiate 12H. La donnée est fournie immédiatement avec l’instruction.
Adressage immédiat
3) MOV BL,[1200H]
Transfère le contenu de la case mémoire d’adresse logique (DS :1200H) vers le registre BL. L’instruction comporte
l’adresse de la case mémoire où se trouve la donnée.
Adressage direct
Remarque : L’adresse effective représente l’offset de la case mémoire dans le segment de données (segment dont
l’adresse est contenue dans le registre DS) : segment par défaut.
32
On peut changer le segment lors d’un adressage direct en ajoutant un préfixe de segment, exemple :
Remarque : dans le cas de l’adressage immédiat de la mémoire, il faut indiquer le format de la donnée : octet ou mot (2
octets) car le microprocesseur 8086 peut manipuler des données sur 8 bits ou 16 bits. Pour cela, on doit utiliser un
spécificateur de format :
Remarque : les microprocesseurs Intel rangent l’octet de poids faible d’une donnée sur plusieurs octets à l’adresse la
plus basse (format Little Endian).
7) MOV AL,[BX]
Transfère la donnée contenu dans la case mémoire d’adresse logique (DS :BX) vers le registre AL.
Le segment associé par défaut au registre BX est le segment de données : on dit que l’adressage est basé sur DS;
8) MOV AL,[BP]
Transfère la donnée contenu dans la case mémoire d’adresse logique (SS :BP) vers le registre AL.
Le segment par défaut associé au registre de base BP est le segment de pile. Dans ce cas, l’adressage est basé
sur SS.
33
9) MOV AL,[SI]
Transfère la donnée contenu dans la case mémoire d’adresse logique (DS :SI) vers le registre AL
Adressage indexé : semblable à l’adressage basé, sauf que l’offset est contenu dans un registre d’index SI ou DI,
associés par défaut au segment de données.
Remarque: une valeur constante peut éventuellement être ajoutée aux registres de base ou d’index pour obtenir
l’offset.
MOV [SI][100H],AX
ou encore
MOV 100H[SI],AX
4 Remarques
34
8. On n'a pas le droit aussi de transférer un registre segment vers un autre registre segment sans passer par un autre
registre :
MOV DS, ES
On va passer comme la première instruction :
MOV AX, ES
MOV DS, DS
9. MOV AL, CX ; erreur, les registres n’ont pas la même taille
10. MOV AL, 2345h ; erreur, la donnée et le registre AL n’ont pas la même taille
11. MOV CS, 3D15h ; erreur, les données ne peuvent être déplacées aux registres segments
Solution:
- MOV AX, 3D15h
- MOV CS, AX
12. Écrasement du segment par défaut
5 Mode d’adressage
35