Difference Between Direct and Indirect Addressing Modes



There are two types of addressing modes, namely, direct addressing mode and indirect addressing mode. In direct addressing mode, the actual address of the data is mentioned in the instructions itself. On the other hand, indirect addressing mode contains the effective address of the memory location where the actual address of the data resides.

Read this article to find out more about direct and indirect addressing modes and how they are different from each other. Let's start with a basic introduction of these two types of addressing modes.

What is Direct Addressing Mode?

The Direct addressing mode is one that contains the actual address of the data. It is so called because the operand field directly specifies the memory location where the data is residing. In the direct addressing mode, the address is first read through instruction and then the data is read. The direct addressing mode is also known as the absolute addressing mode.

In direct addressing mode, the operand field contains the address of the memory location where the data resides. Consequently, there is only a single memory reference required to access the data. Another advantage of direct addressing mode is that there is no need to have extra calculations for determining the exact memory location of the data.

What is the Indirect Addressing Mode?

The Indirect addressing mode is one in which the address field contains the effective address of the memory location where the actual data is present. Therefore, a dual memory reference is needed to access the data in indirect addressing mode. This will increase the extra calculation to fetch the actual data.

In the indirect addressing mode, the effective address of memory location is first read through the instruction, then the actual address is read and finally, the data is accessed. As a result, the indirect addressing mode is relatively slower than the direct addressing mode. It also requires double memory reference and a large address space.

The indirect addressing mode may be further classified into two categories, namely, memory indirect addressing mode and register indirect addressing mode.

Difference between Direct and Indirect Addressing Modes

The important differences between direct addressing mode and indirect addressing mode are listed in the following table −

S. No. Direct Addressing Mode Indirect Addressing Mode
1. In this mode, the address field contains the effective address of the operand. In this mode, the address field contains the effective address of the operand.
2. This addressing mode requires one memory reference only. It requires two memory references.
3. It is a quick addressing mode. It is slower in comparison to direct addressing mode
4. There is no further classification in this mode. It can be further classified into two categories.
5. There are no further calculations required to perform the operation in this addressing mode. It requires further calculation to determine the effective address of the operand.

Conclusion

From the above discussion, we may conclude that direct and indirect addressing modes are two different types of addressing modes which are differentiated from each other on the basis of operation they perform to access the data. The most significant difference between direct and indirect addressing modes is that the direct addressing mode requires only a single memory reference to obtain the data, whereas the indirect addressing mode requires two memory references to fetch the required data.


Advertisements