Beruflich Dokumente
Kultur Dokumente
7/6/2012
Addressing Modes
Name Immediate Register Absolute (Direct) Syntax #Value Ri LOC Addressing Function Operand = Value EA = Ri EA = LOC
Indirect
Index Relative Autoincrement Autodecrement
(Ri) (LOC)
X(Ri) X(PC) (Ri)+ (Ri)
EA = [Ri] EA = [LOC]
EA = [Ri] + X EA = [PC] + X EA = [Ri]; Ri [Ri] + 1 Ri [Ri] 1; EA = [Ri]
EA = Effective Address
7/6/2012 Department of Information Technology 2
7/6/2012
Instruction Results
MOVE #NUM2,R0 MOVE NUM1,R1
MOVE #5,R2 ADD #-1,R2
MEM
Label Addr 0B Contents Addr 0
REGS
Contents X"000D" X"000A" X"0004" X"0005"
NUM1
NUM2
0C
0D 0E
X"000A"
X"0007"
1
2 3
7/6/2012
Indirect Addressing
Assembly Language Register Transfer Notation
7/6/2012
Instruction Results
MOVE (R0),R2 MOVE (R1),NUM1 ADD #1,(R3)
MEM
Label Addr 12 NUM1 NUM2 13 14 15 Contents X"0004" X"0003" X"0009" X"0007" X"0009" Addr 0 1 2 3
REGS
Contents X"0014"
X"0015"
X"0007" X"0012"
7/6/2012
Counter Accumulator
SUM
N
NUM1
n
. . .
NUMn
7/6/2012 Department of Information Technology 7
R1 R2 R3
SUM N NUM1
. . .
NUMn
7/6/2012
7/6/2012
7/6/2012
10
Assembler Directives
SUM EQU ORIGIN N DATAWORD NUM1 RESERVE ORIGIN START MOVE MOVE CLR LOOP ADD ADD DEC BGTZ MOVE RETURN END 200 201 300 300 100 N,R1 #NUM1,R2 R0 (R2),R0 #1,R2 R1 LOOP R0,SUM START
START
CLEAR R0
ADD (R2),R0 ADD #1,R2 DECREMENT R1 BRANCH>0 LOOP MOVE R0,SUM
. . .
LOOP
SUM N NUM1
300
7/6/2012
Two-Pass Assembler
First Pass
Second Pass
7/6/2012
12
Opcode
Source
Dest
Other Info
Opcode
Ri
Rj
Rk
Other Info
Three-Operand Instruction
7/6/2012
13
OP
SRC
DST
VALUE
IR
Assembly Language
OP SRC, DST
Example
Example
MOVE R1,R2
R2 [R1]
7/6/2012
14
Syntax
Addr Fn
0
1
00-11
XX
Register Direct
Absolute
Rn
Value
EA = Rn
EA = Value
EA = Effective Address
7/6/2012 Department of Information Technology 15
Single-Bus Architecture
BUS A 6
MAR
1
MEM MDR
MUX
2 1 2
PC
ROM
IR
2
6 MUX
REGS
A ALU R B
7/6/2012
16
Reg Indir 01
Y
Y [REGS([SRC_REG])]
7/6/2012
17
Absolute 11
Y
Y Value
7/6/2012
18
Absolute 1
Y
REGS([DST_REG]) [Z]
7/6/2012
19
Questions?
7/6/2012
20