Professional Documents
Culture Documents
11.31.32 :
5
:
.1
.
, ( ).
:
( )
]R[t]<-R[a
Ra
]]R[t]<-M[R[a
)(Ra
R[t]<-x
#x
]R[t]<-M[x
x
]]R[t]<-M[M[x
)(x
]]R[t]<-M[x+R[a
)X(Ra
]R[t]<-M[x+PC
)X(PC
a t x , .
* " ,
( ).
:
( ,)High learn
:
ld ra , c2
R ra M R rb c2 , c2 sign extended 2's complement number.
) ld ra , c2 (rb
: r 0
b
sub\add ra , rb , rc
la ra , c2
: rb 0 . R ra c2
) la ra , c2 (rb
PC R rb rc
br(cond) rb , rc
( R ra PC ) PC R rb . rc
/ / /
br(cond) ra , rb , rc
shr/shl/shra/shc
stop
"
.equ
EQUate
Cost: .equ 200 ( #define)C
.org 1000
.org
ORiGin
(
- X .)111110
.dw
Define Word
X: .dw 1 () ( Y )1=Y
X
* pseudo ops .
pseudo ops- :SRC
:
(
).
: SRC .
:
lar
0
32
)0(r1
r1, 8
r2, -1
r2
Loop2
32
r0, Loop1
la
r1,
la
r2,
Loop1:
ld
r3,
addi r1,
addi r2,
brnz r0,
lar
r0,
la
r2,
Loop2:
...
"
: assembler directive
;Define symbolic constant
);Next word will be loaded at address 1000 (decimal
;Reserve 1 word for variable X
;Program will at hex address 5000
;Load address of jump location if expression is false
;Get value of X into r1
;Branch to Over if r10
;Negate value
SRC
Label: opcode operands ; comments
( ) ( ; ).
:
. SRC , .2
. .SRC
. ( ) B
() ( H)
. . (
) .
. r3+12 ).12(r3
load store
.
:
: ,Abstract RTN : .
: 4 4 (
).
:
: ( type ) ,
stop .
:Abstract RTN .
RTN : .
: ()
() .
"
:
Abstract RTN
R r1 M 80H
.
.
.
ld r1 ,80 H
.
.
.
0
.
.
.
:
RTN
( ) :
"
80 H . 84 H SRC
. 100 H
1
2 .
3 .
Abstract RTN
R r1 M 80H
ld r1 ,80 H
R r2 M 84H
ld r2 ,84 H
sub r3 , r2 , r1
R r4 PC 16 32
lar r4 ,16
12
if R r3 0 : PC R r4
brmi r4 , r3
16
st r2 .100H
20
lar r5 ,8
24
br r5
28
st r1 ,100 H
32
stop
36
R r3 R r2 R r1
M 100H R r2
R r5 8 PC 36
PC R r5
M 100H R r1
* PC=16 R r4 PC 16 32
? ...
Abstract RTN
R r1 M 80H
ld r1 ,80 H
R r2 M 84H
ld r2 ,84 H
sub r3 , r2 , r1
lar r4 ,8
12
if R r3 0 : PC R r4
brpl r4 , r3
16
R r2 R r1 0
la r2 , r1 ,0
20
st r2 ,100H
24
Stop
28
R r3 R r2 R r1
R r4 PC 8 24
M 100H R r2
* 21
"
1
' .200H . '
,2 ' 1' . .200H
R r1 M 200H
ld r1 , 200 H
R r2 R r1 and 1
andi r2 , r1 ,1
R r3 PC 16 28
lar r3 ,16
if R r2 0 : PC R r3
brzr r3 , r2
12
addi r1 , r1 , 1
16
lar r4 ,8
20
br r4
24
R r1 R r1 / 2
shra r1 , r1 ,1
28
M 200H R r1
st r1 , 200 H
32
stop
36
R r1 R r1 1
R r4 PC 8 32
PC R r4
:
Abstract RTN
R r1 M 200H
ld r1 , 200 H
R r2 R r1 and 1
andi r2 , r1 ,1
R r3 R r1 1
addi r3 , r1 , 1
R r4 R r1 / 2
shra r4 , r1 ,1
12
lar r5 ,8
16
if R r2 0 : PC R r5
brzr r5 , r2
20
R r4 R r3
la r4 , r3 ,0
24
st r4 , 200 H
28
stop
32
R r5 PC 8 28
M 200H R r4
"
2
x1
x1 200H x2 .204H
x2
208H .20CH
' ' , x2 .
Counter .
Abstract RTN
R r3 1
la r3 , 1
R r1 M 200H
ld r1 , 200 H
R r2 M 204H
ld r2 , 204 H
R r3 R r3 1
addi r3 , r3 ,1
12
R r1 R r1 R r2
sub r1 , r1 , r2
16
R r4 PC 12 12
lar r4 , 12
20
if R r1 0 : PC R r4
brpl r4 , r1
24
R r1 R r1 R r2
add r1 , r1 , r2
28
M 20CH R r1
st r1 , 20CH
32
M 208H R r3
st r3 , 208H
36
stop
40
"
:
:3 1 .399
parity
411 .799
' :parity ,1 .-1
'
31 ( ) andi Mask
, 0000 001 , .
,
.1
! ! r0
Masking
R r6 28
R r5 0 28
1
:
?
Not - 1= 1....1
4
* ?4
la r1 , 0
ld r3 , 0 r1
la r7 , 0
andi r5 , r3 ,1
12
lar r6 ,8
16
brzr r6 , r5
20
addi r7 , r7 ,1
24
shr r3 .r3 ,1
28
lar r8 , 24
32
brnz r8 , r3
36
andi r7 , r7 ,1
40
la r5 , 0
44
lar r6 ,8
48
brzr r6 , r7
52
not r5 , r5
56
st r5 , 400 r1
60
addi r1 , r1 , 4
64
addi r9 , r1 , 400
68
lar r10 , 72
72
brnz r10 , r9
76
stop
80
"
Branch
. Andi
.
' r7 ,
2 A B , .
A , 1 .
la r1 , 0
ld r3 , 0 r1
la r7 , 0
andi r5 , r3 ,1
12
lar r6 ,8
16
brzr r6 , r5
20
not r7, r7
24
shr r3 .r3 ,1
28
lar r8 , 24
32
brnz r8 , r3
36
st r7 , 400 r1
40
addi r1 , r1 , 4
44
addi r9 , r1 , 400
48
lar r10 , 52
52
brnz r10 , r9
56
stop
60
, 40 56 .
"
: (-lar )
. ( ,
) .
:4
"
"
:
"
:5
.pseudo ops- ?
( )
, .
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
cnt: .equ 8
.org 0
seq: .dc 1
next: .dc 1
ans: .dw cnt
.org 0x1000
lar r31,loop
la r0,cnt
la r1,seq
)loop: ld r2, seq(r1
)ld r3, next(r1
add r2,r2,r3
)st r2,ans(r1
addi r1,r1,4
addi r0,r0,-1
brnz r31,r0
stop