35
Computer Architecture and Organization Instruction Sets: Addressing Modes and Formats

Ch_11=Displacement Slide No 16

Embed Size (px)

Citation preview

Page 1: Ch_11=Displacement Slide No 16

8/12/2019 Ch_11=Displacement Slide No 16

http://slidepdf.com/reader/full/ch11displacement-slide-no-16 1/35

Computer Architecture

and Organization

Instruction Sets:

Addressing Modes and Formats

Page 2: Ch_11=Displacement Slide No 16

8/12/2019 Ch_11=Displacement Slide No 16

http://slidepdf.com/reader/full/ch11displacement-slide-no-16 2/35

Addressing Modes

• Immediate

• Direct

• Indirect

• Register

• Register Indirect

• Displacement (Indexed)

• Stack

Page 3: Ch_11=Displacement Slide No 16

8/12/2019 Ch_11=Displacement Slide No 16

http://slidepdf.com/reader/full/ch11displacement-slide-no-16 3/35

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: Ch_11=Displacement Slide No 16

8/12/2019 Ch_11=Displacement Slide No 16

http://slidepdf.com/reader/full/ch11displacement-slide-no-16 4/35

Immediate Addressing Diagram

OperandOpcode

Instruction

Page 5: Ch_11=Displacement Slide No 16

8/12/2019 Ch_11=Displacement Slide No 16

http://slidepdf.com/reader/full/ch11displacement-slide-no-16 5/35

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: Ch_11=Displacement Slide No 16

8/12/2019 Ch_11=Displacement Slide No 16

http://slidepdf.com/reader/full/ch11displacement-slide-no-16 6/35

Direct Addressing Diagram

Address AOpcode

Instruction

Memory

Operand

Page 7: Ch_11=Displacement Slide No 16

8/12/2019 Ch_11=Displacement Slide No 16

http://slidepdf.com/reader/full/ch11displacement-slide-no-16 7/35

Indirect Addressing

• Memory cell pointed to by address fieldcontains the address of (pointer to) theoperand

• EA = (A)

—Look in A, find address (A) and look there foroperand

• e.g. ADD (A)

—Add contents of cell pointed to by contents of

A to accumulator

Page 8: Ch_11=Displacement Slide No 16

8/12/2019 Ch_11=Displacement Slide No 16

http://slidepdf.com/reader/full/ch11displacement-slide-no-16 8/35

Indirect Addressing

• 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: Ch_11=Displacement Slide No 16

8/12/2019 Ch_11=Displacement Slide No 16

http://slidepdf.com/reader/full/ch11displacement-slide-no-16 9/35

Indirect Addressing Diagram

Address AOpcode

Instruction

Memory

Operand

Pointer to operand

Page 10: Ch_11=Displacement Slide No 16

8/12/2019 Ch_11=Displacement Slide No 16

http://slidepdf.com/reader/full/ch11displacement-slide-no-16 10/35

Register Addressing

• Operand is held in register named inaddress filed

• EA = R

• Limited number of registers

• Very small address field needed—Shorter instructions

—Faster instruction fetch

Page 11: Ch_11=Displacement Slide No 16

8/12/2019 Ch_11=Displacement Slide No 16

http://slidepdf.com/reader/full/ch11displacement-slide-no-16 11/35

Register Addressing

• No memory access

• Very fast execution

• Very limited address space

• Multiple registers helps performance

—Requires good assembly programming orcompiler writing

—N.B. C programming

– register int a;

• c.f. Direct addressing

Page 12: Ch_11=Displacement Slide No 16

8/12/2019 Ch_11=Displacement Slide No 16

http://slidepdf.com/reader/full/ch11displacement-slide-no-16 12/35

Register Addressing Diagram

Register Address ROpcode

Instruction

Registers

Operand

Page 13: Ch_11=Displacement Slide No 16

8/12/2019 Ch_11=Displacement Slide No 16

http://slidepdf.com/reader/full/ch11displacement-slide-no-16 13/35

Register Indirect Addressing

• C.f. indirect addressing

• EA = (R)

• Operand is in memory cell pointed to bycontents of register R

• Large address space (2n)

• One fewer memory access than indirectaddressing

Page 14: Ch_11=Displacement Slide No 16

8/12/2019 Ch_11=Displacement Slide No 16

http://slidepdf.com/reader/full/ch11displacement-slide-no-16 14/35

Register Address ROpcode

Instruction

Memory

OperandPointer to Operand

Registers

Register Indirect Addressing Diagram

Page 15: Ch_11=Displacement Slide No 16

8/12/2019 Ch_11=Displacement Slide No 16

http://slidepdf.com/reader/full/ch11displacement-slide-no-16 15/35

Displacement Addressing

• EA = A + (R)

• Address field hold two values

—A = base value

—R = register that holds displacement

—or vice versa

Page 16: Ch_11=Displacement Slide No 16

8/12/2019 Ch_11=Displacement Slide No 16

http://slidepdf.com/reader/full/ch11displacement-slide-no-16 16/35

Displacement Addressing Diagram

Register  ROpcode

Instruction

Memory

OperandPointer to Operand

Registers

Address A

+

Page 17: Ch_11=Displacement Slide No 16

8/12/2019 Ch_11=Displacement Slide No 16

http://slidepdf.com/reader/full/ch11displacement-slide-no-16 17/35

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: Ch_11=Displacement Slide No 16

8/12/2019 Ch_11=Displacement Slide No 16

http://slidepdf.com/reader/full/ch11displacement-slide-no-16 18/35

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: Ch_11=Displacement Slide No 16

8/12/2019 Ch_11=Displacement Slide No 16

http://slidepdf.com/reader/full/ch11displacement-slide-no-16 19/35

Indexed Addressing

• A = base

• R = displacement

• EA = A + R

• Good for accessing arrays

—EA = A + R

—R++

Page 20: Ch_11=Displacement Slide No 16

8/12/2019 Ch_11=Displacement Slide No 16

http://slidepdf.com/reader/full/ch11displacement-slide-no-16 20/35

Combinations

• Postindex

• EA = (A) + (R)

• Preindex

• EA = (A+(R))

• (Draw the diagrams)

Page 21: Ch_11=Displacement Slide No 16

8/12/2019 Ch_11=Displacement Slide No 16

http://slidepdf.com/reader/full/ch11displacement-slide-no-16 21/35

Page 22: Ch_11=Displacement Slide No 16

8/12/2019 Ch_11=Displacement Slide No 16

http://slidepdf.com/reader/full/ch11displacement-slide-no-16 22/35

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: Ch_11=Displacement Slide No 16

8/12/2019 Ch_11=Displacement Slide No 16

http://slidepdf.com/reader/full/ch11displacement-slide-no-16 23/35

Pentium Addressing Mode Calculation

Page 24: Ch_11=Displacement Slide No 16

8/12/2019 Ch_11=Displacement Slide No 16

http://slidepdf.com/reader/full/ch11displacement-slide-no-16 24/35

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

P PC M O d

Page 25: Ch_11=Displacement Slide No 16

8/12/2019 Ch_11=Displacement Slide No 16

http://slidepdf.com/reader/full/ch11displacement-slide-no-16 25/35

PowerPC Memory Operand

Addressing Modes

Page 26: Ch_11=Displacement Slide No 16

8/12/2019 Ch_11=Displacement Slide No 16

http://slidepdf.com/reader/full/ch11displacement-slide-no-16 26/35

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: Ch_11=Displacement Slide No 16

8/12/2019 Ch_11=Displacement Slide No 16

http://slidepdf.com/reader/full/ch11displacement-slide-no-16 27/35

Instruction Length

• Affected by and affects:

—Memory size

—Memory organization

—Bus structure

CPU complexity—CPU speed

• Trade off between powerful instructionrepertoire and saving space

Page 28: Ch_11=Displacement Slide No 16

8/12/2019 Ch_11=Displacement Slide No 16

http://slidepdf.com/reader/full/ch11displacement-slide-no-16 28/35

Allocation of Bits

• Number of addressing modes

• Number of operands

• Register versus memory

• Number of register sets

• Address range

• Address granularity

Page 29: Ch_11=Displacement Slide No 16

8/12/2019 Ch_11=Displacement Slide No 16

http://slidepdf.com/reader/full/ch11displacement-slide-no-16 29/35

PDP-8 Instruction Format

Page 30: Ch_11=Displacement Slide No 16

8/12/2019 Ch_11=Displacement Slide No 16

http://slidepdf.com/reader/full/ch11displacement-slide-no-16 30/35

PDP-10 Instruction Format

Page 31: Ch_11=Displacement Slide No 16

8/12/2019 Ch_11=Displacement Slide No 16

http://slidepdf.com/reader/full/ch11displacement-slide-no-16 31/35

PDP-11 Instruction Format

Page 32: Ch_11=Displacement Slide No 16

8/12/2019 Ch_11=Displacement Slide No 16

http://slidepdf.com/reader/full/ch11displacement-slide-no-16 32/35

Page 33: Ch_11=Displacement Slide No 16

8/12/2019 Ch_11=Displacement Slide No 16

http://slidepdf.com/reader/full/ch11displacement-slide-no-16 33/35

Pentium Instruction Format

Page 34: Ch_11=Displacement Slide No 16

8/12/2019 Ch_11=Displacement Slide No 16

http://slidepdf.com/reader/full/ch11displacement-slide-no-16 34/35

PowerPC Instruction Formats

Page 35: Ch_11=Displacement Slide No 16

8/12/2019 Ch_11=Displacement Slide No 16

http://slidepdf.com/reader/full/ch11displacement-slide-no-16 35/35

PowerPC Instruction Formats