Explain the types of addressing modes with example.
To reference a large range of locations in main memory, a variety of addressing technique are used. The common addressing modes are:
- Immediate
- Direct
- Indirect
- Register
- Register indirect
- Displacement (Indexed)
- Stack
Types of Addressing modes:
Immediate Addressing:
Instruction
-
operand is a part of instruction
- operand = address field
-
e.g. ADD 5—Add 5 to contents of accumulator—5 is operand
-
No memory reference to fetch data
-
Fast
-
Limited range
Direct Addressing:
- Address field contains address of operand
- Effective address (EA) = address field (A)
- e.g. ADD A
—Add contents of cell A to accumulator—Look in memory at address A for operand
-
Single memory reference to access data
-
No additional calculations to work out effective address
-
Limited address space
Indirect Addresssing:
- Memory cell pointed to by address field contains the address of (pointer to) the operand
- EA = (A)
—Look in A, find address (A) and look there for operand
-
e.g. ADD (A)—Add contents of cell pointed to by contents of A to accumulator
-
Large address space
-
2n where n = word length
-
May be nested, multilevel, cascaded—e.g. EA = (((A)))
-
Multiple memory accesses to find operand
-
Hence slower
Register Addressing:
- Operand is held in register named in address filed
- EA = R
- Limited number of registers
-
Very small address field needed—Shorter instructions—Faster instruction fetch
-
No memory access
-
Very fast execution
-
Very limited address space
-
Multiple registers helps performance—Requires good assembly programming or compiler writing—N.B. C programming–register int a;
Register Indirect Addressing:
- C.f. indirect addressing
- EA = (R)
- Operand is in memory cell pointed to by contents of register R
- Large address space (2n)
- One fewer memory access than indirect addressing
Displacement Addressing:
- EA = A + (R)
-
Address field hold two values—A = base value—R = register that holds displacement—or vice versa
Stack Addressing:
- Operand is (implicitly) on top of stack
-
e.g.—ADD Pop top two items from stack and add
- The stack mode of addressing is a form of implied addressing
- the machine instructions need not include a memory reference but implicitly operate on top of stack.