17

Addressing

Embed Size (px)

Citation preview

Page 1: Addressing
Page 2: Addressing

Addressing

We would like to be able to reference a large range of locations in main memory or, for some systems, virtual memory. To achieve this objective, a variety of addressing techniques has been employed.

Page 3: Addressing

Type of Addressing

Immediate Direct Indirect Register Register indirect Displacement Stack

Page 4: Addressing

Immediate Addressing

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

Page 5: Addressing

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

Page 6: Addressing

Direct Addressing

Page 7: Addressing

Indirect Addressing 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

where n = word length

May be nested, multilevel, cascaded

—e.g. EA = (((A)))

Multiple memory accesses to find operand

Hence slower

Page 8: Addressing

Indirect Addressing

Page 9: Addressing

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

Page 10: Addressing

Register Addressing

Page 11: Addressing

Register Indirect Addressing

Similar to indirect addressing EA = (R) Operand is in memory cell pointed to by

contents of register R Large address space () One fewer memory access than indirect

addressing

Page 12: Addressing

Register Indirect Addressing

Page 13: Addressing

Displacement Addressing

EA = A + (R) Address field hold two values

—A = base value

—R = register that holds displacement

—or vice versa

Page 14: Addressing

Displacement Addressing

Page 15: Addressing

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.

Page 16: Addressing

Stack Addressing

Page 17: Addressing

Summary