• Tidak ada hasil yang ditemukan

11_ Instruction Sets addressing modes

N/A
N/A
Protected

Academic year: 2017

Membagikan "11_ Instruction Sets addressing modes"

Copied!
36
0
0

Teks penuh

(1)

William Stallings

Computer Organization and Architecture

7th Edition

Chapter 11

Instruction Sets:

(2)

Addressing Modes • Immediate

• Direct • Indirect • Register

• Register Indirect

(3)

Immediate Addressing

Operand is part of instructionOperand = address field

e.g. ADD 5

—Add 5 to contents of accumulator

—5 is operand

• No memory reference to fetch data • Fast

(4)

Immediate Addressing Diagram

Operand Opcode

(5)

Direct Addressing

Address field contains address of operandEffective 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

(6)

Direct Addressing Diagram

Address A Opcode

Instruction

Memory

(7)

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)

(8)

Indirect Addressing (2) • Large address space

• 2n where n = word length

• May be nested, multilevel, cascaded

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

– Draw the diagram yourself

(9)

Indirect Addressing Diagram

Address A Opcode

Instruction

Memory

Operand

(10)

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

(11)

Register Addressing (2) • No memory accessVery fast execution

Very limited address space

Multiple registers helps performance

—Requires good assembly programming or compiler writing

—N.B. C programming

– register int a;

(12)

Register Addressing Diagram

Register Address R Opcode

Instruction

Registers

(13)

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)

(14)

Register Indirect Addressing Diagram

Register Address R Opcode

Instruction

Memory

Operand Pointer to Operand

(15)

Displacement Addressing • EA = A + (R)

• Address field hold two values

A = base value

—R = register that holds displacement

(16)

Displacement Addressing Diagram

Register R Opcode

Instruction

Memory

Operand Pointer to Operand

Registers

Address A

(17)

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

(18)

Base-Register Addressing • A holds displacement

• R holds pointer to base address • R may be explicit or implicit

(19)

Indexed Addressing • A = base

• R = displacement • EA = A + R

• Good for accessing arrays

EA = A + R

(20)

Combinations • Postindex

• EA = (A) + (R)

• Preindex

• EA = (A+(R))

(21)

Stack Addressing

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

ADD Pop top two items from stack

(22)

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

(23)
(24)

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

(25)
(26)

Instruction Formats

Layout of bits in an instructionIncludes opcode

Includes (implicit or explicit) operand(s)Usually more than one instruction format

(27)

Instruction Length

Affected by and affects:

—Memory size

—Memory organization

Bus structure —CPU complexity

—CPU speed

(28)

Allocation of Bits

Number of addressing modesNumber of operands

Register versus memoryNumber of register setsAddress range

(29)
(30)
(31)
(32)
(33)
(34)
(35)
(36)

Foreground Reading • Stallings chapter 11

Referensi

Dokumen terkait

Data segment Data area Stack filled by previous procedures Empty stack locations Stack marker Stack pointer (SP). Stack limit (SL) Increasing memory addresses Stack filled by

Register indirect addressing uses the contents of either R0 or R1 (in the pre selected register bank) as a address pointer to locate in a 256 byte block (the lower 128 bytes of

•To provide memory protection, add two registers that determine the range of legal addresses a program may address. • Base Register - holds smallest legal physical

The instruction pointer (EIP) register on Intel processors contains the offset in the current code segment for the next instruction to be executed.. It is advanced from one

•To provide memory protection, add two registers that determine the range of legal addresses a program may address. • Base Register - holds smallest legal physical memory

Displacement Value Distribution p Immediate Value Distribution Immediate Value Distribution Current Trends: Memory y Addressing • For a new ISA design would expect to see: – support

• The d-bit is needed only to place the result of an operation into WREG; the default is d = 1 • If the third operand a-bit is a 0, then the access bank is used for the register file

• The str is used to store register to memory using relative address op-code = 4 o Example: str R8, 34 This instruction will store the register R8 contents to the memory location M