36
William Stallings Computer Organization and Architecture 6 th Edition Chapter 11 Instruction Sets: Addressing Modes and Formats

Chapter 11 Instruction Sets: Addressing Modes and …William Stallings Computer Organization and Architecture 6th Edition Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W2004/... ·

Embed Size (px)

Citation preview

Page 1: Chapter 11 Instruction Sets: Addressing Modes and …William Stallings Computer Organization and Architecture 6th Edition Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W2004/... ·

William Stallings Computer Organization and Architecture6th Edition

Chapter 11Instruction Sets:Addressing Modesand Formats

Page 2: Chapter 11 Instruction Sets: Addressing Modes and …William Stallings Computer Organization and Architecture 6th Edition Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W2004/... ·

Addressing Modes• Immediate• Direct• Indirect• Register• Register Indirect• Displacement (Indexed) • Stack

Page 3: Chapter 11 Instruction Sets: Addressing Modes and …William Stallings Computer Organization and Architecture 6th Edition Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W2004/... ·

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

Page 4: Chapter 11 Instruction Sets: Addressing Modes and …William Stallings Computer Organization and Architecture 6th Edition Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W2004/... ·

Immediate Addressing Diagram

OperandOpcode

Instruction

Page 5: Chapter 11 Instruction Sets: Addressing Modes and …William Stallings Computer Organization and Architecture 6th Edition Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W2004/... ·

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: Chapter 11 Instruction Sets: Addressing Modes and …William Stallings Computer Organization and Architecture 6th Edition Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W2004/... ·

Direct Addressing Diagram

Address AOpcode

Instruction

Memory

Operand

Page 7: Chapter 11 Instruction Sets: Addressing Modes and …William Stallings Computer Organization and Architecture 6th Edition Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W2004/... ·

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

Page 8: Chapter 11 Instruction Sets: Addressing Modes and …William Stallings Computer Organization and Architecture 6th Edition Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W2004/... ·

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

Page 9: Chapter 11 Instruction Sets: Addressing Modes and …William Stallings Computer Organization and Architecture 6th Edition Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W2004/... ·

Indirect Addressing Diagram

Address AOpcode

Instruction

Memory

Operand

Pointer to operand

Page 10: Chapter 11 Instruction Sets: Addressing Modes and …William Stallings Computer Organization and Architecture 6th Edition Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W2004/... ·

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

Page 11: Chapter 11 Instruction Sets: Addressing Modes and …William Stallings Computer Organization and Architecture 6th Edition Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W2004/... ·

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

Page 12: Chapter 11 Instruction Sets: Addressing Modes and …William Stallings Computer Organization and Architecture 6th Edition Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W2004/... ·

Register Addressing Diagram

Register Address ROpcode

Instruction

Registers

Operand

Page 13: Chapter 11 Instruction Sets: Addressing Modes and …William Stallings Computer Organization and Architecture 6th Edition Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W2004/... ·

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

Page 14: Chapter 11 Instruction Sets: Addressing Modes and …William Stallings Computer Organization and Architecture 6th Edition Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W2004/... ·

Register Indirect Addressing Diagram

Register Address ROpcode

Instruction

Memory

OperandPointer to Operand

Registers

Page 15: Chapter 11 Instruction Sets: Addressing Modes and …William Stallings Computer Organization and Architecture 6th Edition Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W2004/... ·

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

—A = base value—R = register that holds displacement—or vice versa

Page 16: Chapter 11 Instruction Sets: Addressing Modes and …William Stallings Computer Organization and Architecture 6th Edition Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W2004/... ·

Displacement Addressing Diagram

Register ROpcode

Instruction

Memory

OperandPointer to Operand

Registers

Address A

+

Page 17: Chapter 11 Instruction Sets: Addressing Modes and …William Stallings Computer Organization and Architecture 6th Edition Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W2004/... ·

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• c.f locality of reference & cache usage

Page 18: Chapter 11 Instruction Sets: Addressing Modes and …William Stallings Computer Organization and Architecture 6th Edition Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W2004/... ·

Base-Register Addressing• A holds displacement• R holds pointer to base address• R may be explicit or implicit• e.g. segment registers in 80x86

Page 19: Chapter 11 Instruction Sets: Addressing Modes and …William Stallings Computer Organization and Architecture 6th Edition Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W2004/... ·

Indexed Addressing• A = base• R = displacement• EA = A + R• Good for accessing arrays

—EA = A + R—R++

Page 20: Chapter 11 Instruction Sets: Addressing Modes and …William Stallings Computer Organization and Architecture 6th Edition Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W2004/... ·

Combinations• Postindex• EA = (A) + (R)

• Preindex• EA = (A+(R))

• (Draw the diagrams)

Page 21: Chapter 11 Instruction Sets: Addressing Modes and …William Stallings Computer Organization and Architecture 6th Edition Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W2004/... ·

Stack Addressing• Operand is (implicitly) on top of stack• e.g.

—ADD Pop top two items from stackand add

Page 22: Chapter 11 Instruction Sets: Addressing Modes and …William Stallings Computer Organization and Architecture 6th Edition Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W2004/... ·

Pentium Addressing Modes• Virtual or effective address is offset into segment

— Starting address plus offset gives linear address— This goes through page translation if paging enabled

• 12 addressing modes available— Immediate— Register operand— Displacement— Base— Base with displacement— Scaled index with displacement— Base with index and displacement— Base scaled index with displacement— Relative

Page 23: Chapter 11 Instruction Sets: Addressing Modes and …William Stallings Computer Organization and Architecture 6th Edition Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W2004/... ·

Pentium Addressing Mode Calculation

Page 24: Chapter 11 Instruction Sets: Addressing Modes and …William Stallings Computer Organization and Architecture 6th Edition Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W2004/... ·

PowerPC Addressing Modes• Load/store architecture

— Indirect– Instruction includes 16 bit displacement to be added to base

register (may be GP register)– Can replace base register content with new address

— Indirect indexed– Instruction references base register and index register (both may

be GP)– EA is sum of contents

• Branch address— Absolute— Relative— Indirect

• Arithmetic— Operands in registers or part of instruction— Floating point is register only

Page 25: Chapter 11 Instruction Sets: Addressing Modes and …William Stallings Computer Organization and Architecture 6th Edition Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W2004/... ·

PowerPC Memory Operand Addressing Modes

Page 26: Chapter 11 Instruction Sets: Addressing Modes and …William Stallings Computer Organization and Architecture 6th Edition Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W2004/... ·

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

Page 27: Chapter 11 Instruction Sets: Addressing Modes and …William Stallings Computer Organization and Architecture 6th Edition Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W2004/... ·

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

Page 28: Chapter 11 Instruction Sets: Addressing Modes and …William Stallings Computer Organization and Architecture 6th Edition Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W2004/... ·

Allocation of Bits• Number of addressing modes• Number of operands• Register versus memory• Number of register sets• Address range• Address granularity

Page 29: Chapter 11 Instruction Sets: Addressing Modes and …William Stallings Computer Organization and Architecture 6th Edition Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W2004/... ·

PDP-8 Instruction Format

Page 30: Chapter 11 Instruction Sets: Addressing Modes and …William Stallings Computer Organization and Architecture 6th Edition Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W2004/... ·

PDP-10 Instruction Format

Page 31: Chapter 11 Instruction Sets: Addressing Modes and …William Stallings Computer Organization and Architecture 6th Edition Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W2004/... ·

PDP-11 Instruction Format

Page 32: Chapter 11 Instruction Sets: Addressing Modes and …William Stallings Computer Organization and Architecture 6th Edition Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W2004/... ·

VAX Instruction Examples

Page 33: Chapter 11 Instruction Sets: Addressing Modes and …William Stallings Computer Organization and Architecture 6th Edition Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W2004/... ·

Pentium Instruction Format

Page 34: Chapter 11 Instruction Sets: Addressing Modes and …William Stallings Computer Organization and Architecture 6th Edition Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W2004/... ·

PowerPC Instruction Formats (1)

Page 35: Chapter 11 Instruction Sets: Addressing Modes and …William Stallings Computer Organization and Architecture 6th Edition Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W2004/... ·

PowerPC Instruction Formats (2)

Page 36: Chapter 11 Instruction Sets: Addressing Modes and …William Stallings Computer Organization and Architecture 6th Edition Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W2004/... ·

Foreground Reading• Stallings chapter 11• Intel and PowerPC Web sites