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]