Skip to content
TheCScience
TheCScience
  • Engineering Subjects
    • Human Values
    • Computer System Architecture
    • Digital Communication
    • Internet of Things
  • NCERT Solutions
    • Class 12
    • Class 11
  • HackerRank solutions
    • HackerRank Algorithms Problems Solutions
    • HackerRank C solutions
    • HackerRank C++ problems solutions
    • HackerRank Java problems solutions
    • HackerRank Python problems solutions
TheCScience
TheCScience

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:

  1. Implicit addressing mode
  2. Immediate addressing mode
  3. Direct addressing mode
  4. Indirect addressing mode
  5. Register addressing mode
  6. Register indirect addressing mode
  7. Displacement addressing mode
  8. 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
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
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
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
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 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
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.

  1. Relative addressing mode
  2. Index addressing mode
  3. 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
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
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
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 mode
Immediate addressing mode
Direct addressing mode
Indirect addressing mode
Register addressing mode
Register indirect addressing mode

Computer System Architecture engineering subjects Computer System Architectureengineering subjects

Post navigation

Previous post
Next post

Computer Architecture fundamentals
Development of Computers
Von Neuman and Harvard machine Architecture
Flynn Classification
Computer Structure Architecture
Interfacing Logic Devices
Levels of Design abstraction
Performance Metrics

Register Transfer Language
Memory Transfer
Arithmetic Micro-operations
Logic Micro-operations
Shift Micro-operations
Bus Architecture
Data Transfer
Central Processing Unit
CPU Bus Architecture

Computer Register and Types
Common Bus System
Instruction Format
Instruction Types
Instruction Cycle
Addressing Modes
Design of a basic computer

Basic function of a Computer
General register organization
Stack organization
Infix to Reverse Polish Notation Conversion
Instruction Types and their classifications
Data transfer and manipulation
Program control
RISC characteristics
CISC characteristics

Pipeline
Types of Pipeline
Arithmetic Pipeline
Instruction Pipeline
Hazards
Vector Processing

Data Representation
Addition and Subtraction
Adder Circuits
Shift and Add Multiplication Method
Booth's Algorithm
Restoring Division Algorithm
Non-Restoring Division Algorithm
Array Multiplier

Memory Classification
Memory Characteristics
Memory Organization
Memory Types
Associative Memory
Cache Memory
Virtual Memory

Input Output Interface
Modes of Data Transfer
Priority Interrupt
Direct Memory Access
Input-Output Processor
Serial Communication

TheCScience

We at TheCScience.com are working towards the goal to give free education to every person by publishing in dept article about Secondary, Senior-Secondary, and Graduation level subjects.

Pages

About US

Contact US

Privacy Policy

DMCA

Engineering Subjects

Internet of Things

Human Values

Digital Communication

Computer System Architecture

Programming Tutorials

Data Structure and Algorithm

C

Java

NCERT

Class 12th

©2026 TheCScience | WordPress Theme by SuperbThemes