Addressing Modes in Computer Architecture: Purpose, Why They Exist, and Two Modes Without Address Fields

Addressing Modes in Computer Architecture: Purpose, Why They Exist, and Two Modes Without Address Fields

Verified Sources
Nov 4, 2026

An addressing mode describes how the CPU interprets an instruction’s operand information—i.e., whether the operand is in a register, is a literal constant, is at a computed memory address, etc. The key idea is that the same instruction format (e.g., an opcode plus some operand bits) can support multiple ways to locate operands by using an addressing mode interpretation mechanism (often encoded via an “addressing mode field” in the instruction, or implied by instruction type).

Computers use addressing modes because they improve:

  • Code flexibility: instructions can refer to operands stored in different places (registers, memory, constants, stacks) without changing the entire instruction set design.
  • Code density and efficiency: many common operations can use compact encodings (e.g., immediate or register-based forms) rather than forcing memory accesses.
  • Performance and memory locality: selecting register/immediate modes can reduce memory traffic and latency.
  • Support for different programming constructs: arrays, pointers, procedure calls, and control-flow targets naturally map to indirect/base/relative addressing forms.

Below, we formalize two addressing modes that do not use an address field (because they don’t need to name a memory address).

Note: Exact instruction-encoding details vary across ISAs (x86, ARM, RISC-V, etc.), but the conceptual model of addressing modes is consistent: it’s a contract between instruction encoding and operand location/value selection.

Addressing Modes (Immediate vs Register) — Computer Organization Overview

Core terms (quick reference)

  • operand
  • effective address
  • immediate operand
  • register operand

Why “addressing mode” exists

In a typical architecture, the CPU must decide one of several operand retrieval strategies for each instruction execution:

  1. Use a literal directly (immediate)
  2. Use a register value directly (register)
  3. Compute a memory address (direct/indirect/base-relative/indexed/PC-relative) and then read/write memory

This is why addressing modes are “techniques”: they let the ISA define multiple operand-location rules without forcing every instruction to always carry a full memory address.

How a CPU uses addressing modes at execution time

  1. 1
    Step 1

    The instruction bits are split into opcode and operand-specifying parts (which may include register specifiers and/or an addressing-mode selector).

  2. 2
    Step 2

    The CPU uses the addressing mode semantics to determine whether the operand is a constant, a register value, or something requiring an effective address computation.

  3. 3
    Step 3

    If immediate: use the literal. If register: read the register. If memory-based: compute effective address and perform a memory read/write.

  4. 4
    Step 4

    The ALU performs the operation using the retrieved operand(s), and stores the result according to the destination rules.

  5. 5
    Step 5

    Registers/memory/status flags are updated as required by the instruction semantics.

Two addressing modes without address fields

Mode 1: Immediate addressing (immediate mode)

Meaning: The operand value is contained directly in the instruction as a literal constant. No memory location needs to be specified, so there is no “address field” pointing to memory.

  • immediate
  • immediate addressing

Example (conceptual assembly):

  • Instruction: ADD R1, #5
  • Interpretation:
    • #5 is an immediate literal
    • The CPU adds the literal 5 to R1 (register value), producing the result in the destination register.

Why it needs no address field: the operand is already the constant 5—there is no memory dereference, so there is no effective address computation.


Mode 2: Register addressing (register mode)

Meaning: The operand is taken from a CPU register specified by the instruction. Again, no memory address is required.

  • register addressing
  • register operand

Example (conceptual assembly):

  • Instruction: MOV R2, R3
  • Interpretation:
    • The source operand is the value currently stored in register R3
    • The destination R2 receives that value

Why it needs no address field: registers are not addressed like memory locations in a dereference step for this mode; the instruction directly names the register (typically using register specifier bits).

Quick mental model

If the operand is literally written in the instruction (immediate) or already sits in a named CPU register (register mode), then you don’t need an address field to fetch it from memory.

Don’t confuse “no address field” with “no operand bits”

Even when there’s no memory address, instructions still contain bits that specify what the operand is (e.g., the immediate literal, or the register ID). The “address field” concept refers to fields used to locate memory (effective address), not to all operand-specifying bits.

Addressing Mode Coverage (from simplest to most address-computation-heavy)

No memory access

Immediate

Operand is a constant embedded in the instruction."

No memory dereference

Register

Operand is taken from a specified CPU register."

Requires effective address

Memory-based (for context)

Operand is loaded/stored using a computed or specified memory address."

Address Field Necessity (Conceptual)

Immediate and register modes do not require a memory address to retrieve the operand.

Common pitfalls and clarifications

Addressing Mode Quick Check

1 / 4
Question · Term

What does addressing mode specify?

Click to reveal
Answer · Definition

How an instruction determines where the operand comes from (constant, register, or memory via an effective address).

Knowledge Check

Question 1 of 4
Q1Single choice

In immediate addressing mode, the operand comes from: