KEMBAR78
addressing modes in computer architecture | PPT
Addressing Modes
• The term addressing modes refers to the
way in which the operand of an instruction
is specified. The addressing mode
specifies a rule for interpreting or
modifying the address field of the
instruction before the operand is actually
executed.
Addressing Modes
• Implied
• Immediate
• Direct
• Indirect
• Register
• Register Indirect
• Displacement (Indexed)
• Stack
Implied Addressing
• Implied addressing refers to instructions that comprise
only an opcode without an operand; for example, the
INCA(“increment accumulator”)Instruction.
• Zero address instruction are designed with implied
addressing mode.
• ADD (it takes previous two values from the stack and ADD’s
them).
• CLC (used to reset Carry flag to 0)
Immediate Addressing
• Operand is 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
Immediate Addressing Diagram
Operand
Opcode
Instruction
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
Direct Addressing Diagram
Address A
Opcode
Instruction
Memory
Operand
Indirect Addressing (1)
• 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
Indirect Addressing (2)
• Large address space
• 2n where n = word length
• May be nested, multilevel, cascaded
—e.g. EA = (((A)))
– Draw the diagram yourself
• Multiple memory accesses to find operand
• Hence slower
Indirect Addressing Diagram
Address A
Opcode
Instruction
Memory
Operand
Pointer to operand
Register Addressing (1)
• 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
Register Addressing (2)
• 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;
• c.f. Direct addressing
Register Addressing Diagram
Register Address R
Opcode
Instruction
Registers
Operand
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
Register Indirect Addressing Diagram
Register Address R
Opcode
Instruction
Memory
Operand
Pointer to Operand
Registers
Displacement Addressing
• EA = A + (R)
• Address field hold two values
—A = base value
—R = register that holds displacement
—or vice versa
Displacement Addressing Diagram
Register R
Opcode
Instruction
Memory
Operand
Pointer to Operand
Registers
Address A
+
addressing modes  in computer architecture
addressing modes  in computer architecture
addressing modes  in computer architecture

addressing modes in computer architecture

  • 1.
    Addressing Modes • Theterm addressing modes refers to the way in which the operand of an instruction is specified. The addressing mode specifies a rule for interpreting or modifying the address field of the instruction before the operand is actually executed.
  • 2.
    Addressing Modes • Implied •Immediate • Direct • Indirect • Register • Register Indirect • Displacement (Indexed) • Stack
  • 3.
    Implied Addressing • Impliedaddressing refers to instructions that comprise only an opcode without an operand; for example, the INCA(“increment accumulator”)Instruction. • Zero address instruction are designed with implied addressing mode. • ADD (it takes previous two values from the stack and ADD’s them). • CLC (used to reset Carry flag to 0)
  • 4.
    Immediate Addressing • Operandis 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
  • 5.
  • 6.
    Direct Addressing • Addressfield 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
  • 7.
    Direct Addressing Diagram AddressA Opcode Instruction Memory Operand
  • 8.
    Indirect Addressing (1) •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
  • 9.
    Indirect Addressing (2) •Large address space • 2n where n = word length • May be nested, multilevel, cascaded —e.g. EA = (((A))) – Draw the diagram yourself • Multiple memory accesses to find operand • Hence slower
  • 10.
    Indirect Addressing Diagram AddressA Opcode Instruction Memory Operand Pointer to operand
  • 11.
    Register Addressing (1) •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
  • 12.
    Register Addressing (2) •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; • c.f. Direct addressing
  • 13.
    Register Addressing Diagram RegisterAddress R Opcode Instruction Registers Operand
  • 14.
    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
  • 15.
    Register Indirect AddressingDiagram Register Address R Opcode Instruction Memory Operand Pointer to Operand Registers
  • 18.
    Displacement Addressing • EA= A + (R) • Address field hold two values —A = base value —R = register that holds displacement —or vice versa
  • 19.
    Displacement Addressing Diagram RegisterR Opcode Instruction Memory Operand Pointer to Operand Registers Address A +