Addressing Mode
The way an operand is specified is known as it’s addressing mode.
1) Immediate Addressing Mode: When operand is a constant. Or, we can say
that in this addressing mode immediate data is the part of the instruction
itself.
MOV AX, 0201H
MOV AL, 1234H
2) Register Addressing Mode: In register addressing mode data is stored in a
register or we can say operand is a register.
ADD AX,BX
MOV AL,BL
3) Direct Addressing Mode: When operand is a variable. Or, we can say that
the effective address the operand is directly present in instruction.
MOV AX, [1000H]
ADD BX, [2000H]
4) Register Indirect Addressing Mode: In this mode the offset address is
contained in a register. Where register act as a pointer to the memory
location.
Register to store the offset address can be BX, SI, DI, BP.
MOV AX, [BX]
ADD AX, [SI]
5) 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.
MOV DX, [BX+04]
ADD CL, [BP+08]
6) Indexed Addressing Mode: In this addressing mode, the offset address of the
operand is given by the sum of contents of the SI/DI registers and 8-bit/16-bit
displacement.
MOV BX, [SI+2]
ADD AL, [DI+3]
7) Based Indexed Addressing Mode: In this mode offset address of the operand
is the sum of
1) Content of the base register.
2) Content of the index register,
3) Optionally, offset address of a variable.
4) Optionally, a constant.
MOV AX, [BP+SI]
MOV AX,[BX+DI+4]