You are on page 1of 20

copyright 2011-2015 WWW.VidyarthiPlus.

in 1
Addressing Modes
CS1251
Computer Organization
Carl Hamacher

copyright 2011-2015 WWW.VidyarthiPlus.in 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
copyright 2011-2015 WWW.VidyarthiPlus.in 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]
copyright 2011-2015 WWW.VidyarthiPlus.in 4
Instruction Results
Label Addr Contents
0B
NUM1 0C X"000A"
NUM2 0D X"0007"
0E
MEM REGS
Addr 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"
copyright 2011-2015 WWW.VidyarthiPlus.in 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])]
copyright 2011-2015 WWW.VidyarthiPlus.in 6
X"0003"
Instruction Results
Label Addr Contents
12
NUM1 13
NUM2 14 X"0007"
15 X"0009"
MEM REGS
Addr 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"
copyright 2011-2015 WWW.VidyarthiPlus.in 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
Program
loop
n
PC [PC] + Offset (CC>0)
Counter
Accumulator
copyright 2011-2015 WWW.VidyarthiPlus.in 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
copyright 2011-2015 WWW.VidyarthiPlus.in 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]
copyright 2011-2015 WWW.VidyarthiPlus.in 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
copyright 2011-2015 WWW.VidyarthiPlus.in 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 R1 105
107
START
copyright 2011-2015 WWW.VidyarthiPlus.in 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
copyright 2011-2015 WWW.VidyarthiPlus.in 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
copyright 2011-2015 WWW.VidyarthiPlus.in 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
IR OP SRC DST VALUE
Register Transfer Notation
DST [SRC] OP [DST]

Example
R2 [R1]
copyright 2011-2015 WWW.VidyarthiPlus.in 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
DST
0 00-11 Register Direct Rn EA = Rn
1 XX Absolute Value EA = Value
copyright 2011-2015 WWW.VidyarthiPlus.in 16
Single-Bus Architecture
1 1
2
PC
IR
REGS
A B
R
ALU
MDR
MAR
MEM
BUS A
Y
Z
1 2
6
6 6
2
1
1
ROM
3
MUX
MUX
copyright 2011-2015 WWW.VidyarthiPlus.in 17
SRC Control Flowchart
Reg Direct
00
Y [REGS([SRC_REG])]
Reg Indir
01
MAR [REGS([SRC_REG])]
MDR [MEM([MAR])]
Y [MDR]
Y Y
N N
copyright 2011-2015 WWW.VidyarthiPlus.in 18
SRC Control Flowchart
Immediate
10
Y Value
Absolute
11
MAR Value
MDR [MEM([MAR])]
Y [MDR]
Y Y
N N
copyright 2011-2015 WWW.VidyarthiPlus.in 19
DST Control Flowchart
Reg Direct
0
REGS([DST_REG]) [Z]
Absolute
1
MAR Value
MDR [Z]
MEM([MAR]) [MDR]
Y Y
N N
copyright 2011-2015 WWW.VidyarthiPlus.in 20
Questions?
This image cannot currently be displayed.

You might also like