Les modes d’adressage du 8086
Il existe plusieurs modes d’adressage du micro processeur 8086
a- Mode d’adressage immédiat
Dans ce mode il s »agit de transférer directement une valeur. dans ce mode, les données
sont présentes dans le champ d’adresse de l’instruction. Conçu comme un format
d’instruction d’adresse.
Remarque : La limitation en mode immédiat est que la plage de constantes est restreinte
par la taille du champ d’adresse.
Exemple
MOV AX, 10ABH
AX ; destination
10ABH : source
Le résultat est dans AX comme suit :
AH AL
10 AB
AX
b- Mode d’adressage direct
Dans ce cas, on travaille avec la mémoire, il s’agit d’exploiter les adresses mémoires.
Un chiffre entre crochet indique une adresse mémoire
22 5000
Exemple
5001
55
MOV AX, [5000H]
AH CONTIENT 55
AL CONTIENT 22
c- Mode d’adressage registre
Dans ce cas, les deux opérandes sont des registres. dans l’adressage de registre,
l’opérande est placé dans l’un des registres à usage général 8 bits ou 16 bits. Les données
se trouvent dans le registre spécifié par l’instruction.
Exemple
BH BL
10 AB
BX
AH AL
33 22
AX
Après exécution de l’instruction
MOV AX, BX
on aura le résultat suivant
BH BL
10 AB
BX
AH AL
10 AB
AX
d- Mode d’adressage registre indirect
Dans ce cas, le contenu d’un registre est une adresse mémoire, elle est entre crochets [ ]
Exemple
MOV AX , [BX]
AH AL
AX
BH BL
50 00
BX
Supposons que la mémoire est comme suit :
22 5000
55 5001
Le résultat de l’instruction est comme suit :
AH AL
55 22
AX
e- Memory adressing mode
Dans ce cas, la destination est une adresse mémoire entre crochets [ ]
Exemple 1
MOV [5000H], CX
CH CL
43 56
CX
Le résultat de l’exécution de cette instruction sera comme suit :
CH CL
43 56
CX
56 5000
43 5001
On peut utiliser le registre SI.
Exemple 2
MOV AX, [SI]
50 00
SI
11 5000
22 5001
Le résultat est dans AX
AH AL
22 11
AX
On peut utiliser des déplacements.
Exemple 3
MOV AX, 50H[BX]
AH AL
AX
BH BL
50 00
BX
L’adresse mémoire à considérer est 5000H+50H = 5050H
07 5050
09 5051
Le résultat dans AX est comme suit :
AH AL
09 07
AX
REMARQUE
50H[BX] peut s’écrire [BX+50H]
On peut aussi deux registres.
Exemple 4
MOV AX, [BX] [SI]
AH AL
AX
10 00
BX
20 00
SI
L’adresse mémoire à considérer est 1000H+2000H = 3000H
04 3000H
01 3001
Le résultat dans AX est comme suit :
AH AL
01 04
AX
On peut aussi deux registres et un déplacement..
Exemple 5
MOV AX, 50H[BX] [SI]
AH AL
AX
10 00
BX
20 00
SI
L’adresse mémoire à considérer est 1000H+2000H+50K = 3050H
18 3050H
17 3051H
Le résultat dans AX est comme suit :
AH AL
17 18
AX