Addressing Modes in Computer Architecture YASH PAL, October 17, 2025February 4, 2026 Addressing Modes in Computer Architecture – The opcode (operation code) field of an instruction specifies the operation to be performed on some operands. These operands may be stored in processor registers or in memory or may be provided directly. The way in which the operands are provided during execution is called the addressing mode of that instruction. In other words, the addressing mode specifies how to find the effective address of an operand using the information available in the instruction. Addressing Modes The most common addressing modes are: Implicit addressing mode Immediate addressing mode Direct addressing mode Indirect addressing mode Register addressing mode Register indirect addressing mode Displacement addressing mode Auto increment/decrement addressing mode The availability of addressing modes gives the flexibility to the programmer for writing programs in a more efficient way in terms of the number of instructions (size of program) and execution time. Implicit Addressing Mode This addressing mode is also known as the implied addressing mode. It does not explicitly specify an effective address for either the source or the destination. Either the source (if any) or destination effective address is implied by the opcode itself. This addressing mode was quite common in older computers. For example, “Set Carry Bit” is an implicit mode instruction because the operand is the carry bit in the flag register, which is implicit in the instruction. The instruction format for the implicit addressing mode contains only the opcode field. There is no operand field. The figure below shows the instruction format for this mode. Implicit Addressing Mode Immediate Addressing Mode This is the simplest form of addressing. Here, the operand is given in the instruction itself. This mode is used to define a constant or set initial valűes of variables. The advantage of this mode is that no memory reference other than instruction fetch is required to obtain the operand. The disadvantage is that the size of the operand is limited to the size of the address field, which makes instruction sets small compared to the word length. In the immediate addressing mode, the instruction does not state the location of the operand; rather, it explicitly states the operand itself. The instruction format for the immediate addressing mode is shown in the figure below. The operand becomes an integral part of the instruction. Immediate Addressing Mode Direct Addressing Mode In direct addressing mode, the effective address of the operand is given in the address field of the instruction. It requires one memory reference to read the operand from the given location and provides only a limited address space. The length of the address field is usually less than the word length. The direct addressing mode was common in earlier generations of computers but is not common on current architectures. A simple example of a direct addressing mode is shown in the figure below. In which the instruction contains the opcode and effective address of the operand. Direct Addressing Mode Indirect Addressing Mode In the indirect addressing mode, the address field of the instruction provides the address where the effective address is stored in memory. The advantage of this mode is that for the word length of N. An address space of 2N can be addressed. The disadvantage is that instruction execution requires two memory references to fetch the operand. Multilevel or cascaded indirect addressing can also be used. In this mode, the processor fetches the instruction from memory and uses its address part to access memory again to read the effective address. An example of indirect addressing is shown in the figure below. Indirect Addressing Mode Register Addressing Mode Register addressing mode is similar to direct addressing. The only difference is that the address field of the instruction refers to a register rather than a memory location. 3 or 4 bits are used in the address field to reference 8 to 16 general-purpose registers. The advantage of register addressing is small address field is needed in the instruction. In this mode, the operands are in registers that reside within the processor unit. The particular register is selected from the address field of the register, as shown in the figure below. The disadvantage of register addressing is that the address space is very limited. Register Addressing Mode Register Indirect Addressing Mode Just as the previous one, register indirect addressing is similar to indirect addressing. In both cases, the only difference is whether the address field refers to a memory location or a register. In this mode, the instruction specifies a register in the processor unit whose contents give the address of the operand in memory. The example of this addressing mode is shown in the figure below. Register Indirect Addressing Mode The advantage of this mode is that the address field of the instruction uses fewer bits to select a register than would have been required to specify a memory address directly. Displacement Addressing Mode This mode combines the capacity of direct addressing and register indirect addressing modes. This mode contains two address fields, in which one provides the offset address, and the other provides the reference address. From these two address fields, the effective address is calculated. There are three most common types of displacement addressing modes. Relative addressing mode Index addressing mode Base addressing mode. (a) Relative addressing mode: In this mode, the address given in the address field of the instruction is an offset, not the actual address. It is added to the contents of the program counter (PC) register to generate the effective address. The program counter stores the address of the instruction to be executed. Therefore, the same relative instruction will produce different addresses at different locations in the program. Effective Address = Address in Program counter + offset Address The figure below shows a relative addressing mode example. The address field of the instruction is usually a signed number, which can be either positive or negative. So it can give the address, positive and negative both sides of the address in the program counter. Relative Addressing Mode (b) Index Addressing Mode: This mode also works like a relative addressing mode, except the address given by the instruction is added to the contents of an index register instead of the program counter. The index register is a special register of the processor that contains the index value. The address field of the instruction provides the starting address of a data array in memory. The distance between the starting address and the address of the operand is the index value stored in the index register. The index register can be incremented to access each element of the array with the same instruction. The effective address in index address mode can be given as follows Effective Address = Starting Address in Instruction + Address in Index Register The figure shows the index addressing mode. Index Addressing Mode (c) Base Address Mode: In this mode, the base contains a memory address, and the address field contains a displacement from that address. The register reference may be explicit or implicit. This mode is similar to the indexed addressing mode, with the difference that the register is now named as a base register instead of an index register. The other difference is the way they are used. An index register holds the index number that is relative to the address part of the instruction, whereas the base register holds the base or starting addressing and the address field of the instruction gives a displacement or offset address. The effective address of the operand is the sum of the contents of the base register and the offset address given in the instructions. Effective Address = Contents of Base Register + Offset Address The figure below shows the base addressing mode. Base Addressing Mode Auto Increment/Decrement Addressing Mode This mode is similar to the register indirect mode except that the register is incremented or decremented automatically after or before its value is used to access the memory. When the address stored in the register refers to a table of data in memory, it is necessary to increment or decrement the register after every access to the table. This can be obtained using this mode. Related Questions and Answers What is the significance of the addressing mode? The addressing mode specifies how to find the effective address of an operand using the information available in the instruction. What are the addressing modes commonly available? The most common addressing modes are:Implicit addressing modeImmediate addressing modeDirect addressing modeIndirect addressing modeRegister addressing modeRegister indirect addressing mode Computer System Architecture engineering subjects Computer System Architectureengineering subjects