8086 Addressing Modes
The different ways in which a source operand is denoted in an instruction is known as addressing modes. There are 8 different addressing modes in 8086 programming −
Immediate addressing mode
The addressing mode in which the data operand is a part of the instruction itself is known as immediate addressing mode.
Example - MOV CX, 4929 H, ADD AX, 2387 H, MOV AL, FFH
Register addressing mode
It means that the register is the source of an operand for an instruction.
Example - MOV CX, AX ; copies the contents of the 16-bit AX register into ; the 16-bit CX register),
ADD BX, AX
Direct addressing mode
The addressing mode in which the effective address of the memory location is written directly in the instruction.
Example - MOV AX, [1592H], MOV AL, [0300H]
Register indirect addressing mode
This addressing mode allows data to be addressed at any memory location through an offset address held in any of the following registers: BP, BX, DI & SI.
Example - MOV AX, [BX] ; Suppose the register BX contains 4895H, then the contents ;
4895H are moved to AX ADD CX, {BX}
Based addressing mode
In this addressing mode, the offset address of the operand is given by the sum of contents of the BX/BP registers and 8-bit/16-bit displacement.
Example - MOV DX, [BX+04], ADD CL, [BX+08]
Indexed addressing mode
In this addressing mode, the operands offset address is found by adding the contents of SI or DI register and 8-bit/16-bit displacements.
Example - MOV BX, [SI+16], ADD AL, [DI+16]
Based-index addressing mode
In this addressing mode, the offset address of the operand is computed by summing the base register to the contents of an Index register.
Example - ADD CX, [AX+SI], MOV AX, [AX+DI]
Based indexed with displacement mode
In this addressing mode, the operands offset is computed by adding the base register contents. An Index registers contents and 8 or 16-bit displacement.
Example - MOV AX, [BX+DI+08], ADD CX, [BX+SI+16]
Immediate addressing mode
The addressing mode in which the data operand is a part of the instruction itself is known as immediate addressing mode.
Example - MOV CX, 4929 H, ADD AX, 2387 H, MOV AL, FFH
Register addressing mode
It means that the register is the source of an operand for an instruction.
Example - MOV CX, AX ; copies the contents of the 16-bit AX register into ; the 16-bit CX register),
ADD BX, AX
Direct addressing mode
The addressing mode in which the effective address of the memory location is written directly in the instruction.
Example - MOV AX, [1592H], MOV AL, [0300H]
Register indirect addressing mode
This addressing mode allows data to be addressed at any memory location through an offset address held in any of the following registers: BP, BX, DI & SI.
Example - MOV AX, [BX] ; Suppose the register BX contains 4895H, then the contents ;
4895H are moved to AX ADD CX, {BX}
Based addressing mode
In this addressing mode, the offset address of the operand is given by the sum of contents of the BX/BP registers and 8-bit/16-bit displacement.
Example - MOV DX, [BX+04], ADD CL, [BX+08]
Indexed addressing mode
In this addressing mode, the operands offset address is found by adding the contents of SI or DI register and 8-bit/16-bit displacements.
Example - MOV BX, [SI+16], ADD AL, [DI+16]
Based-index addressing mode
In this addressing mode, the offset address of the operand is computed by summing the base register to the contents of an Index register.
Example - ADD CX, [AX+SI], MOV AX, [AX+DI]
Based indexed with displacement mode
In this addressing mode, the operands offset is computed by adding the base register contents. An Index registers contents and 8 or 16-bit displacement.
Example - MOV AX, [BX+DI+08], ADD CX, [BX+SI+16]