20
08/23/22 Department of Infor mation Technology 1 Addressing Modes CS1251 Computer Organization Carl Hamacher

1. Addressing Modes

Embed Size (px)

Citation preview

Page 1: 1. Addressing Modes

04/07/23 Department of Information Technology

1

Addressing Modes

CS1251

Computer Organization

Carl Hamacher

Page 2: 1. Addressing Modes

04/07/23 Department of Information Technology 2

Addressing Modes

Name Syntax Addressing Function

Immediate #Value Operand = Value

Register Ri EA = Ri

Absolute (Direct) LOC EA = LOC

Indirect (Ri)

(LOC)

EA = [Ri]

EA = [LOC]

Index X(Ri) EA = [Ri] + X

Relative X(PC) EA = [PC] + X

Autoincrement (Ri)+ EA = [Ri]; Ri [Ri] + 1

Autodecrement –(Ri) Ri [Ri] – 1; EA = [Ri]

EA = Effective Address

Page 3: 1. Addressing Modes

04/07/23 Department of Information Technology 3

Absolute, Register, Immediate

Assembly Language

MOVE NUM1,R1

MOVE #1,R2

ADD #1,R1

ADD R1,R2

Register Transfer Notation

R1 [NUM1]

R2 1

R1 1 + [R1]

R2 [R1] + [R2]

Page 4: 1. Addressing Modes

04/07/23 Department of Information Technology 4

Instruction Results

Label Addr Contents

0B

NUM1 0C X"000A"

NUM2 0D X"0007"

0E

MEM REGSAddr Contents

0

1

2

3

MOVE #NUM2,R0

MOVE NUM1,R1

MOVE #5,R2

X"000D"

X"000A"

X"0005"

ADD #-1,R2

X"0004"

Page 5: 1. Addressing Modes

04/07/23 Department of Information Technology 5

Indirect Addressing

Assembly Language

MOVE (R0),R2

MOVE (R1),NUM1

ADD (R3),R1

ADD #1,(R3)

Register Transfer Notation

R2 [MEM([R0])]

MEM(NUM1) [MEM([R1])]

R1 [MEM([R3])] + [R1]

MEM([R3]) 1 + [MEM([R3])]

Page 6: 1. Addressing Modes

04/07/23 Department of Information Technology 6

X"0003"

Instruction Results

Label Addr Contents

12

NUM1 13

NUM2 14 X"0007"

15 X"0009"

MEM REGSAddr Contents

0

1

2

3 X"0012"

MOVE (R0),R2

MOVE (R1),NUM1

ADD #1,(R3)

X"0014"

X"0015"

X"0007"

X"0009"

X"0004"

Page 7: 1. Addressing Modes

04/07/23 Department of Information Technology 7

Loop to Add n Numbers

.

.

.

SUM

MOVE N,R1

.

.

.

CLEAR R0

DECREMENT R1

BRANCH>0 LOOP

N

NUM1

NUMn

Determine address of "Next" number and add "Next" number to R0

MOVE R0,SUM

LOOP

Programloop

n

PC [PC] + Offset (CC>0)

Counter

Accumulator

Page 8: 1. Addressing Modes

04/07/23 Department of Information Technology 8

Use of Indirect Addressing

MOVE N,R1

MOVE #NUM1,R2

CLEAR R0

LOOP ADD (R2),R0

ADD #1,R2

DECREMENT R1

BRANCH>0 LOOP

MOVE R0,SUM

SUM

.

.

.

N

NUM1

NUMn

n

R0

R1

R2

R3

n Counter

NUM1 Pointer

0 Accumulator

Page 9: 1. Addressing Modes

04/07/23 Department of Information Technology 9

Indexed Addressing (Arrays)

Assembly Language

MOVE X(R0),R1

MOVE R2,Y(R3)

ADD Z(R1),R2

Register Transfer Notation

R1 [MEM(X + [R0])]

MEM(Y + [R3]) [R2]

R2 [MEM(Z + [R1])] + [R2]

Page 10: 1. Addressing Modes

04/07/23 Department of Information Technology 10

Assembly Language to Machine Instructions

Assembler (Program) Source Program (Assembly Language) Object Program (Machine Instructions)

Assembler Directives (Commands) How to Interpret Names Where to Place Instructions in Memory Where to Place Data in Memory

Page 11: 1. Addressing Modes

04/07/23 Department of Information Technology 11

Assembler Directives

SUM EQU 200

ORIGIN 201

N DATAWORD 300

NUM1 RESERVE 300

ORIGIN 100

START MOVE N,R1

MOVE #NUM1,R2

CLR R0

LOOP ADD (R2),R0

ADD #1,R2

DEC R1

BGTZ LOOP

MOVE R0,SUM

RETURN

END START

.

.

.

SUM

MOVE N,R1

CLEAR R0

ADD (R2),R0

BRANCH>0 LOOP

N

NUM1

MOVE R0,SUM

LOOP

300

MOVE #NUM1,R2

ADD #1,R2

200

201

202

100

101

102

103

104

106

DECREMENT R1105

107

START

Page 12: 1. Addressing Modes

04/07/23 Department of Information Technology 12

Two-Pass Assembler

First Pass Create Symbol Table Names Assigned Numerical Values

Second Pass Translates Assembly Language to Machine Code Substitutes Values for Names Computes Branch Offsets

Page 13: 1. Addressing Modes

04/07/23 Department of Information Technology 13

Encoding of Machine Instructions

Opcode Source Dest Other Info

One-Word Instruction

Opcode Source Dest Other Info

Two-Word Instruction

Memory Address / Immediate Operand

Opcode Ri Other Info

Three-Operand Instruction

Rj Rk

Page 14: 1. Addressing Modes

04/07/23 Department of Information Technology 14

HW2 Instruction Encoding

Assembly Language OP SRC, DST

Example MOVE R1,R2

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

IROP SRC DST VALUE

Register Transfer Notation DST [SRC] OP [DST]

Example R2 [R1]

Page 15: 1. Addressing Modes

04/07/23 Department of Information Technology 15

HW2 Addressing Modes

Mode REG # Name Syntax Addr Fn

SRC

00 00-11 Register Direct Rn EA = Rn

01 00-11 Register Indirect (Rn) EA = [Rn]

10 XX Immediate #Value Operand = Value

11 XX Absolute Value EA = Value

EA = Effective Address

Mode REG # Name Syntax Addr Fn

DST0 00-11 Register Direct Rn EA = Rn

1 XX Absolute Value EA = Value

Page 16: 1. Addressing Modes

04/07/23 Department of Information Technology 16

Single-Bus Architecture

1 12

PC

IR

REGS

A B

RALU

MDR

MAR

MEM

BUS A

Y

Z

1 2

6

66

21

1

ROM3

MUXMUX

Page 17: 1. Addressing Modes

04/07/23 Department of Information Technology 17

SRC Control Flowchart

Reg Direct00

Y [REGS([SRC_REG])]

Reg Indir01

MAR [REGS([SRC_REG])]

MDR [MEM([MAR])]

Y [MDR]

Y Y

NN

Page 18: 1. Addressing Modes

04/07/23 Department of Information Technology 18

SRC Control Flowchart

Immediate10

Y Value

Absolute11

MAR Value

MDR [MEM([MAR])]

Y [MDR]

Y Y

NN

Page 19: 1. Addressing Modes

04/07/23 Department of Information Technology 19

DST Control Flowchart

Reg Direct0

REGS([DST_REG]) [Z]

Absolute1

MAR Value

MDR [Z]

MEM([MAR]) [MDR]

Y Y

NN

Page 20: 1. Addressing Modes

04/07/23 Department of Information Technology 20

Questions?