chapter 11 instruction sets: addressing modes and formatsvojin/classes/eec70/w...pentium addressing...
TRANSCRIPT
![Page 1: Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W...Pentium Addressing Modes • Virtual or effective address is offset into segment —Starting address](https://reader034.vdocument.in/reader034/viewer/2022051606/601b2a17fae49d1dc2037585/html5/thumbnails/1.jpg)
William Stallings Computer Organization and Architecture6th Edition
Chapter 11Instruction Sets:Addressing Modesand Formats
![Page 2: Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W...Pentium Addressing Modes • Virtual or effective address is offset into segment —Starting address](https://reader034.vdocument.in/reader034/viewer/2022051606/601b2a17fae49d1dc2037585/html5/thumbnails/2.jpg)
Addressing Modes• Immediate• Direct• Indirect• Register• Register Indirect• Displacement (Indexed) • Stack
![Page 3: Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W...Pentium Addressing Modes • Virtual or effective address is offset into segment —Starting address](https://reader034.vdocument.in/reader034/viewer/2022051606/601b2a17fae49d1dc2037585/html5/thumbnails/3.jpg)
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 Formatsvojin/CLASSES/EEC70/W...Pentium Addressing Modes • Virtual or effective address is offset into segment —Starting address](https://reader034.vdocument.in/reader034/viewer/2022051606/601b2a17fae49d1dc2037585/html5/thumbnails/4.jpg)
Immediate Addressing Diagram
OperandOpcode
Instruction
![Page 5: Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W...Pentium Addressing Modes • Virtual or effective address is offset into segment —Starting address](https://reader034.vdocument.in/reader034/viewer/2022051606/601b2a17fae49d1dc2037585/html5/thumbnails/5.jpg)
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 Formatsvojin/CLASSES/EEC70/W...Pentium Addressing Modes • Virtual or effective address is offset into segment —Starting address](https://reader034.vdocument.in/reader034/viewer/2022051606/601b2a17fae49d1dc2037585/html5/thumbnails/6.jpg)
Direct Addressing Diagram
Address AOpcode
Instruction
Memory
Operand
![Page 7: Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W...Pentium Addressing Modes • Virtual or effective address is offset into segment —Starting address](https://reader034.vdocument.in/reader034/viewer/2022051606/601b2a17fae49d1dc2037585/html5/thumbnails/7.jpg)
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 Formatsvojin/CLASSES/EEC70/W...Pentium Addressing Modes • Virtual or effective address is offset into segment —Starting address](https://reader034.vdocument.in/reader034/viewer/2022051606/601b2a17fae49d1dc2037585/html5/thumbnails/8.jpg)
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 Formatsvojin/CLASSES/EEC70/W...Pentium Addressing Modes • Virtual or effective address is offset into segment —Starting address](https://reader034.vdocument.in/reader034/viewer/2022051606/601b2a17fae49d1dc2037585/html5/thumbnails/9.jpg)
Indirect Addressing Diagram
Address AOpcode
Instruction
Memory
Operand
Pointer to operand
![Page 10: Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W...Pentium Addressing Modes • Virtual or effective address is offset into segment —Starting address](https://reader034.vdocument.in/reader034/viewer/2022051606/601b2a17fae49d1dc2037585/html5/thumbnails/10.jpg)
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 Formatsvojin/CLASSES/EEC70/W...Pentium Addressing Modes • Virtual or effective address is offset into segment —Starting address](https://reader034.vdocument.in/reader034/viewer/2022051606/601b2a17fae49d1dc2037585/html5/thumbnails/11.jpg)
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 Formatsvojin/CLASSES/EEC70/W...Pentium Addressing Modes • Virtual or effective address is offset into segment —Starting address](https://reader034.vdocument.in/reader034/viewer/2022051606/601b2a17fae49d1dc2037585/html5/thumbnails/12.jpg)
Register Addressing Diagram
Register Address ROpcode
Instruction
Registers
Operand
![Page 13: Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W...Pentium Addressing Modes • Virtual or effective address is offset into segment —Starting address](https://reader034.vdocument.in/reader034/viewer/2022051606/601b2a17fae49d1dc2037585/html5/thumbnails/13.jpg)
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 Formatsvojin/CLASSES/EEC70/W...Pentium Addressing Modes • Virtual or effective address is offset into segment —Starting address](https://reader034.vdocument.in/reader034/viewer/2022051606/601b2a17fae49d1dc2037585/html5/thumbnails/14.jpg)
Register Indirect Addressing Diagram
Register Address ROpcode
Instruction
Memory
OperandPointer to Operand
Registers
![Page 15: Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W...Pentium Addressing Modes • Virtual or effective address is offset into segment —Starting address](https://reader034.vdocument.in/reader034/viewer/2022051606/601b2a17fae49d1dc2037585/html5/thumbnails/15.jpg)
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 Formatsvojin/CLASSES/EEC70/W...Pentium Addressing Modes • Virtual or effective address is offset into segment —Starting address](https://reader034.vdocument.in/reader034/viewer/2022051606/601b2a17fae49d1dc2037585/html5/thumbnails/16.jpg)
Displacement Addressing Diagram
Register ROpcode
Instruction
Memory
OperandPointer to Operand
Registers
Address A
+
![Page 17: Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W...Pentium Addressing Modes • Virtual or effective address is offset into segment —Starting address](https://reader034.vdocument.in/reader034/viewer/2022051606/601b2a17fae49d1dc2037585/html5/thumbnails/17.jpg)
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 Formatsvojin/CLASSES/EEC70/W...Pentium Addressing Modes • Virtual or effective address is offset into segment —Starting address](https://reader034.vdocument.in/reader034/viewer/2022051606/601b2a17fae49d1dc2037585/html5/thumbnails/18.jpg)
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 Formatsvojin/CLASSES/EEC70/W...Pentium Addressing Modes • Virtual or effective address is offset into segment —Starting address](https://reader034.vdocument.in/reader034/viewer/2022051606/601b2a17fae49d1dc2037585/html5/thumbnails/19.jpg)
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 Formatsvojin/CLASSES/EEC70/W...Pentium Addressing Modes • Virtual or effective address is offset into segment —Starting address](https://reader034.vdocument.in/reader034/viewer/2022051606/601b2a17fae49d1dc2037585/html5/thumbnails/20.jpg)
Combinations• Postindex• EA = (A) + (R)
• Preindex• EA = (A+(R))
• (Draw the diagrams)
![Page 21: Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W...Pentium Addressing Modes • Virtual or effective address is offset into segment —Starting address](https://reader034.vdocument.in/reader034/viewer/2022051606/601b2a17fae49d1dc2037585/html5/thumbnails/21.jpg)
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 Formatsvojin/CLASSES/EEC70/W...Pentium Addressing Modes • Virtual or effective address is offset into segment —Starting address](https://reader034.vdocument.in/reader034/viewer/2022051606/601b2a17fae49d1dc2037585/html5/thumbnails/22.jpg)
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 Formatsvojin/CLASSES/EEC70/W...Pentium Addressing Modes • Virtual or effective address is offset into segment —Starting address](https://reader034.vdocument.in/reader034/viewer/2022051606/601b2a17fae49d1dc2037585/html5/thumbnails/23.jpg)
Pentium Addressing Mode Calculation
![Page 24: Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W...Pentium Addressing Modes • Virtual or effective address is offset into segment —Starting address](https://reader034.vdocument.in/reader034/viewer/2022051606/601b2a17fae49d1dc2037585/html5/thumbnails/24.jpg)
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 Formatsvojin/CLASSES/EEC70/W...Pentium Addressing Modes • Virtual or effective address is offset into segment —Starting address](https://reader034.vdocument.in/reader034/viewer/2022051606/601b2a17fae49d1dc2037585/html5/thumbnails/25.jpg)
PowerPC Memory Operand Addressing Modes
![Page 26: Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W...Pentium Addressing Modes • Virtual or effective address is offset into segment —Starting address](https://reader034.vdocument.in/reader034/viewer/2022051606/601b2a17fae49d1dc2037585/html5/thumbnails/26.jpg)
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 Formatsvojin/CLASSES/EEC70/W...Pentium Addressing Modes • Virtual or effective address is offset into segment —Starting address](https://reader034.vdocument.in/reader034/viewer/2022051606/601b2a17fae49d1dc2037585/html5/thumbnails/27.jpg)
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 Formatsvojin/CLASSES/EEC70/W...Pentium Addressing Modes • Virtual or effective address is offset into segment —Starting address](https://reader034.vdocument.in/reader034/viewer/2022051606/601b2a17fae49d1dc2037585/html5/thumbnails/28.jpg)
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 Formatsvojin/CLASSES/EEC70/W...Pentium Addressing Modes • Virtual or effective address is offset into segment —Starting address](https://reader034.vdocument.in/reader034/viewer/2022051606/601b2a17fae49d1dc2037585/html5/thumbnails/29.jpg)
PDP-8 Instruction Format
![Page 30: Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W...Pentium Addressing Modes • Virtual or effective address is offset into segment —Starting address](https://reader034.vdocument.in/reader034/viewer/2022051606/601b2a17fae49d1dc2037585/html5/thumbnails/30.jpg)
PDP-10 Instruction Format
![Page 31: Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W...Pentium Addressing Modes • Virtual or effective address is offset into segment —Starting address](https://reader034.vdocument.in/reader034/viewer/2022051606/601b2a17fae49d1dc2037585/html5/thumbnails/31.jpg)
PDP-11 Instruction Format
![Page 32: Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W...Pentium Addressing Modes • Virtual or effective address is offset into segment —Starting address](https://reader034.vdocument.in/reader034/viewer/2022051606/601b2a17fae49d1dc2037585/html5/thumbnails/32.jpg)
VAX Instruction Examples
![Page 33: Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W...Pentium Addressing Modes • Virtual or effective address is offset into segment —Starting address](https://reader034.vdocument.in/reader034/viewer/2022051606/601b2a17fae49d1dc2037585/html5/thumbnails/33.jpg)
Pentium Instruction Format
![Page 34: Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W...Pentium Addressing Modes • Virtual or effective address is offset into segment —Starting address](https://reader034.vdocument.in/reader034/viewer/2022051606/601b2a17fae49d1dc2037585/html5/thumbnails/34.jpg)
PowerPC Instruction Formats (1)
![Page 35: Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W...Pentium Addressing Modes • Virtual or effective address is offset into segment —Starting address](https://reader034.vdocument.in/reader034/viewer/2022051606/601b2a17fae49d1dc2037585/html5/thumbnails/35.jpg)
PowerPC Instruction Formats (2)
![Page 36: Chapter 11 Instruction Sets: Addressing Modes and Formatsvojin/CLASSES/EEC70/W...Pentium Addressing Modes • Virtual or effective address is offset into segment —Starting address](https://reader034.vdocument.in/reader034/viewer/2022051606/601b2a17fae49d1dc2037585/html5/thumbnails/36.jpg)
Foreground Reading• Stallings chapter 11• Intel and PowerPC Web sites