The techniques to specify the data in the instruction is known as Addressing Modes (AM). In computer architecture, there are different ways to retrieve the data in the instruction. The Intel 8085 microprocessor has following addressing modes:
- Direct memory Addressing
- Register direct addressing
- Register indirect addressing
- Immediate addressing
Direct Addressing Mode
In Direct memory Addressing mode, the address of the operand (data) is given in the instruction itself.
Example: STA 8086H (stores the content of the accumulator in the memory location 2400H). Machine Code = 32,86,80.
The first byte is for the Opcode while the 2nd and 3rd byte is used to specify the address of the memory location. The source of the data is the accumulator, from which the data will be stored in the memory location 8086 H.
Register Addressing Mode
In Register Direct Addressing mode the operand is either one of the general purpose register or the accumulator. The address of the register on which the operation is to be performed is specified in the Opcode itself. Therefore, it is 1-byte instruction.
Examples: MOV A, B (move the content of the register B to register A). Machine code = 78.
The Data source is B and the data will be moved to register A. The data is moved directly from one register to another.
Register Indirect Addressing Mode
In Register Indirect Addressing mode the data cannot be retrieved directly from the register, unlike the Register direct AM. The address of the data is stored in a register pair. The Control Unit of the CPU will first fetch the register pair and then fetch the data from the address specified by register pair.
Example: LXI H, 8051H (load H-L pair with 8051 ), MOV A, M (move the content of the Memory Location, whose address is in H-L pair i.e 8051H to the accumulator), HLT (HALT).
The H-L register pair is loaded with the address of the data. The MOV A, M will retrieve the data from the memory address stored in the H-L pair (i.e 8051) and move it to register A.
Immediate Addressing Mode
In Immediate Addressing mode the Operand (data) is specified in the Instruction itself, which means that CPU doesn’t need to fetch the data from any memory location.
Example: MVI A, 09 (move 09 to register A). Machine Code = 3E, 09.
The operand or data 09 will immediately move to the register A.
Implicit Addressing mode
The Implicit Addressing mode doesn’t require the address of the operand because it operates on the content of the accumulator only.