- Immediate
- Direct
- Indirect
- Register
- Register Indirect
- Displacement (Indexed)
- Stack
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
Direct Addressing
— 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 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
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
Register 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
Relative Addressing
- A version of displacement addressing
- R = Program counter, PC
- EA = A + (PC)
- i.e. get operand from A cells from current location pointed to by PC
- locality of reference & cache usage
Base-Register Addressing
- A holds displacement
- R holds pointer to base address
- R may be explicit or implicit
- e.g. segment registers in 80x86
Indexed Addressing
- A = base
- R = displacement
- EA = A + R
- Good for accessing arrays
— EA = A + R
— R++
Instruction Formats
- Layout of bits in an instruction
- Includes opcode
- Includes (implicit or explicit) operand(s)
- Usually more than one instruction format in an instruction set
Instruction Length
- Affected by and affects:
— Memory size
— Memory organization
— Bus structure
— CPU complexity
— CPU speed
- Trade off between powerful instruction repertoire and saving space
No comments:
Post a Comment