Difference between Indirect and Immediate Addressing Modes
Prerequisite – Addressing Modes
1. Indirect Addressing Mode:
In indirect addressing mode, the address field in the instruction points to the memory location or register where the effective address of the operand is present.
Two memory accesses are required. One to get the value stored at the given address field. Second to get the effective address of operand at the address found. It can be further classified as Register Indirect addressing and Memory Indirect Addressing.
Example: Add the contents of the address stored at register B.
In the address field of the instruction, here register B holds the address of the operand.
2. Immediate Addressing Mode:
In immediate addressing mode, the operand is a part of the instruction.
Here the Operand = Address Field
Example: Add 8 to the accumulator.
No memory reference is required to fetch data. So no additional calculations are required to work out the effective address. It is a fast method. But the downside is that it has a limited range.
Now let’s compare Indirect and Immediate Addressing Modes.
|S. No.||Parameters||Indirect Addressing Mode||Immediate Addressing Mode|
|1.||Address Field||The address field of the instruction holds the address of the operand.||There is no address field as the operand is a part of the instruction. It has an operand field instead of an address field.|
|2.||Memory Reference||It requires two references to memory.||It does not require any reference to memory for fetching data.|
|3.||Process Speed||It is slower compared to the immediate mode.||It is a faster process.|
|4.||Range||It has more range than in immediate mode.||It has a limited range.|
|5.||Categories||It is further classified into two categories- Memory Indirect and Register Indirect||No further classification.|
|6.||Example||ADD [B]||ADD 5|
|7.||Advantage||Availability of enormous address space.||Memory reference is not required.|
|8.||Disadvantage||More memory references are required.||Limitation on operand value|
|9.||Application||It aids in the implementation of pointers and arrays as arguments.||Registers are initialized to a fixed value.|