0% found this document useful (0 votes)
17 views

Addressing Modes

Computer organization

Uploaded by

balamurgan406
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views

Addressing Modes

Computer organization

Uploaded by

balamurgan406
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Addressing Modes

The different ways of specifying the location of an operand in an instruction are called as
addressing modes
Types of Addressing Modes

Immediate Addressing Mode


In this addressing mode,The operand is specified in the instruction explicitly.
Instead of address field, an operand field is present that contains the operand.

Examples-
ADD 10 will increment the value stored in the accumulator by 10.
MOV R #20 initializes register R to a constant value 20.

Direct Addressing Mode


In this addressing mode, The address field of the instruction contains the effective address of the
operand. Only one reference to memory is required to fetch the operand.It is also called as
absolute addressing mode.
Example
ADD X will increment the value stored in the accumulator by the value stored at memory
location X.
AC ← AC + [X]

Indirect Addressing Mode


In this addressing mode, The address field of the instruction specifies the address of
memory location that contains the effective address of the operand. Two references to memory
are required to fetch the operand.

Example-
ADD X will increment the value stored in the accumulator by the value stored at
memory location specified by X.
AC ← AC + [[X]]

Register Direct Addressing Mode


In this addressing mode, The operand is contained in a register set.
The address field of the instruction refers to a CPU register that contains the operand.
No reference to memory is required to fetch the operand.
Example-
ADD R will increment the value stored in the accumulator by the content of register R.
AC ← AC + [R]
It is interesting to note-
 This addressing mode is similar to direct addressing mode.
 The only difference is address field of the instruction refers to a CPU register instead
of main memory.

Register Indirect Addressing Mode


In this addressing mode, The address field of the instruction refers to a CPU register that
contains the effective address of the operand. Only one reference to memory is required to fetch
the operand.

Example-
ADD R will increment the value stored in the accumulator by the content of memory
location specified in register R.
AC ← AC + [[R]]
It is interesting to note-
 This addressing mode is similar to indirect addressing mode.
 The only difference is address field of the instruction refers to a CPU register.
Relative Addressing Mode
In this addressing mode, Effective address of the operand is obtained by adding the content of
program counter with the address part of the instruction.

Effective Address = Content of Program Counter + Address part of the instruction

Program counter (PC) always contains the address of the next instruction to be executed. After
fetching the address of the instruction, the value of program counter immediately increases. The
value increases irrespective of whether the fetched instruction has completely executed or not.

Indexed Addressing Mode


In this addressing mode, Effective address of the operand is obtained by adding the
content of index register with the address part of the instruction.
Effective Address = Content of Index Register + Address part of the instruction
Base Register Addressing Mode
In this addressing mode, Effective address of the operand is obtained by adding the
content of base register with the address part of the instruction.

Effective Address = Content of Base Register + Address part of the instruction

Auto-Increment Addressing Mode


This addressing mode is a special case of Register Indirect Addressing Mode
Effective Address of the Operand = Content of Register
In this addressing mode,
 After accessing the operand, the content of the register is automatically incremented by
step size ‘d’.
 Step size ‘d’ depends on the size of operand accessed.
 Only one reference to memory is required to fetch the operand.

Assume operand size = 2 bytes.


Here,
 After fetching the operand 6B, the instruction register RAUTO will be automatically
incremented by 2.
 Then, updated value of RAUTO will be 3300 + 2 = 3302.
 At memory address 3302, the next operand will be found.

In auto-increment addressing mode,


 First, the operand value is fetched.
 Then, the instruction register RAUTO value is incremented by step size ‘d’.

Auto-Decrement Addressing Mode


This addressing mode is again a special case of Register Indirect Addressing Mode
Effective Address of the Operand = Content of Register – Step Size
In this addressing mode,
 First, the content of the register is decremented by step size ‘d’.
 Step size ‘d’ depends on the size of operand accessed.
 After decrementing, the operand is read.
 Only one reference to memory is required to fetch the operand.

Assume operand size = 2 bytes.

Here,

 First, the instruction register RAUTO will be decremented by 2.


 Then, updated value of RAUTO will be 3302 – 2 = 3300.
 At memory address 3300, the operand will be found.
 In auto-decrement addressing mode,

First, the instruction register RAUTO value is decremented by step size ‘d’.
Then, the operand value is fetched.

You might also like