Upload
sandeep-reddy-kankanala
View
179
Download
7
Tags:
Embed Size (px)
Citation preview
04/07/23 Department of Information Technology
1
Addressing Modes
CS1251
Computer Organization
Carl Hamacher
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
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]
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"
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])]
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"
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
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
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]
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
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
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
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
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]
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
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
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
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
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
04/07/23 Department of Information Technology 20
Questions?