Microprocesseur - 8086 Modes d'adressage
Les différentes manières dont un opérande source est indiqué dans une instruction sont appelées addressing modes. Il existe 8 modes d'adressage différents dans la programmation du 8086 -
Mode d'adressage immédiat
Le mode d'adressage dans lequel l'opérande de données fait partie de l'instruction elle-même est appelé mode d'adressage immédiat.
Exemple
MOV CX, 4929 H, ADD AX, 2387 H, MOV AL, FFH
Enregistrer le mode d'adressage
Cela signifie que le registre est la source d'un opérande pour une instruction.
Exemple
MOV CX, AX ; copies the contents of the 16-bit AX register into
; the 16-bit CX register),
ADD BX, AX
Mode d'adressage direct
Le mode d'adressage dans lequel l'adresse effective de l'emplacement mémoire est écrite directement dans l'instruction.
Exemple
MOV AX, [1592H], MOV AL, [0300H]
Enregistrer le mode d'adressage indirect
Ce mode d'adressage permet aux données d'être adressées à n'importe quel emplacement mémoire via une adresse de décalage conservée dans l'un des registres suivants: BP, BX, DI & SI.
Exemple
MOV AX, [BX] ; Suppose the register BX contains 4895H, then the contents
; 4895H are moved to AX
ADD CX, {BX}
Mode d'adressage basé
Dans ce mode d'adressage, l'adresse d'offset de l'opérande est donnée par la somme des contenus des registres BX / BP et du déplacement 8 bits / 16 bits.
Exemple
MOV DX, [BX+04], ADD CL, [BX+08]
Mode d'adressage indexé
Dans ce mode d'adressage, l'adresse de décalage des opérandes est trouvée en ajoutant le contenu du registre SI ou DI et des déplacements 8 bits / 16 bits.
Exemple
MOV BX, [SI+16], ADD AL, [DI+16]
Mode d'adressage basé sur l'index
Dans ce mode d'adressage, l'adresse de décalage de l'opérande est calculée en additionnant le registre de base au contenu d'un registre d'index.
Exemple
ADD CX, [AX+SI], MOV AX, [AX+DI]
Basé indexé avec le mode de déplacement
Dans ce mode d'adressage, le décalage des opérandes est calculé en ajoutant le contenu du registre de base. Un index enregistre le contenu et le déplacement de 8 ou 16 bits.
Exemple
MOV AX, [BX+DI+08], ADD CX, [BX+SI+16]