Professional Documents
Culture Documents
Pico Computer
Pico Computer
1
-
1/84
n
n
n
n
n
2/84
n 16-
n - 64 16-
n 16-
n
3/84
4/84
kd operacije
15
14
13
12
i1
11
a1
10
i2
8
a2
6
i3
4
a3
2
5/84
kd operacije
15
14
13
12
i1
11
a1
10
i2
8
a2
6
i3
4
14
13
12
11
10
6/84
a3
Konstanta/Adresa
15
i = 0, adr(A) = a
i = 1, adr(A) = val(a)
0
7/84
8/84
0
1
...
n
n
65535
-
9/84
n
n
()
( )
(
)
n
n
n
n
10/84
11/84
12/84
:
n
n
n
n
13/84
MA := val(PC);
MD := val(val(MA));
IR := val(MD);
PC := val(PC) + 1;
Memory
Address
register
kkkk
xxxx (4 ) X
Memory Data
register
0nnn (4 )
N
Instruction
Register
????
Program
Counter
14/84
ccc
15/84
16/84
ival i sval
X val(X)
n
val ,
#X
(X) val(val(X))
( 0...7),
#X - adr(X)
17/84
X = val(X) - 23
23
#X = adr(X) - 5
(X) = val(val(X)) - 18
18/84
18
19/84
20/84
adr(X[0]) = adr(X) - 18
23
adr(X[1]) = adr(X) + 1 - 19
0000 MOV
23
18
21/84
0001 ADD
1001 ADD
A1:=A2+A3 ( )
A1:=A2+val(val(PC)), A1:=val(val(PC))+A3
0010 SUB
1010 SUB
A1:=A2A3 ( )
A1:=A2val(val(PC)), A1:=val(val(PC))A3
0011 MUL
1011 MUL
A1:=A2*A3 ( )
A1:=A2*val(val(PC)), A1:=val(val(PC))A3
0100 DIV
1100 DIV
A1:=A2/A3 ( )
A1:=A2/val(val(PC)), A1:=val(val(PC))/A3
> 8 adr(A2)>0
adr(A3)>0
23/84
i3=0,
i3=1,
i3=0,
i3=1,
a3=0
a3=0
a3>0
a3=7
A1:=A2
A1:=val(val(PC))
A1[j]:=A2[j], j=0, 1, ,val(A3)1
A1[j]:=A2[j], j=0, 1, ,val(val(PC))1
22/84
0101 BEQ
, 0110 BGT
:
Uslov_Ispunjen PC:=Adresa_Skoka.
:
(1) A1=A2, A1>A2 ( kodirano: a1>0 a2>0 )
(2) A1=0, A1>0 (: a1>0 i2=a2=0 )
(3) 0=A2, 0>A2 (: i1=a1=0 a2>0 )
: adr(A1)>0 adr(A2)>0
:
(1) i3=0 0a37 Adresa_Skoka=val(a3)
(2) i3=1 a3=0 Adresa_Skoka=val(val(PC))
24/84
0111 IN
n ,
A1[j], J=0, ..., n-1.
i2=0 06
n, n 127.
i2=1 a2=0 n=A3. n>0.
1101 JSR
1000 OUT
n ,
A1[], j=0, , n1 .
n , IN.
1110 RTS
PC:=stek
25/84
1111 STOP
PC-.
0000,
, ,
,
(
0 ).
MOV 0000
X:= Y
X:= C
27/84
26/84
28/84
ADD b001
SUB b010
MUL b011
DIV b100
X : = Y Z, { +, , *, / }
X : = C Z ( zzzz>0 )
BEQ 0101
BGT 0110
if X Y then PC:=cccccccccccccccc
( xxxx>0, yyyy>0 )
29/84
IN 0111
OUT 1000
30/84
JSR 1101
Stek:=PC+1, PC:=cccccccccccccccc
PC:=stek
31/84
32/84
:
STOP 1111
O X, Y, Z
( xxxx>0, yyyy>0, zzzz>0 )
M:
33/84
BGT
1, 9 ADD
IN
2, A SUB
OUT
3, B MUL
JSR
4, C DIV
RTS
STOP
n
n
35/84
34/84
MOV
BEQ
36/84
simbol = vrednost
:
X - val(3)
#X - 3
X
X=3
(X)
X - val(val(3))
37/84
(bin)
(hex)
MOV X, 65
39/84
65
0041
#X
0003
0011
(X)
1011
MOV X, #CNST
38/84
40/84
N := broj_ponavljanja
da
BEQ X, Y, skip
ne
loop:
Raunanje
BGT N, 0, loop
skip:
da
ne
-
41/84
ORG konstanta [ ; komentar ]
43/84
42/84
konstanta
# simbol
simbol
simbol
(
)
simbol
[simbol:] MOV
,
(
simbol
)
simbol
,
(simbol)
simbol = konstanta [ ; komentar ]
konstanta
# simbol
simbol
[ ; komentar]
44/84
konstanta
ADD
simbol , # simbol
SUB simbol
(simbol) simbol
[simbol:]
,
(simbol)
MUL (simbol)
DIV
konstanta simbol
# simbol (simbol)
[ ; komentar]
45/84
konstanta
# simbol
IN
simbol
[ simbol :]
,
[ ; komentar ]
simbol
OUT ( simbol )
( simbol )
47/84
simbol
(simbol)
BEQ simbol
[simbol :]
BGT (simbol)
simbol
,
(simbol)
simbol
0
,
,
[ ; komentar]
(
simbol
)
simbol
,
( simbol)
46/84
simbol simbol
,
,
[ ; komentar]
(simbol) (simbol)
48/84
M N,
M > N
R := M - M / N N
LOOP
M := N
N := R
R >0
DA
Prikazati rezultat M
-
49/84
M=1
N=2
R=3
ORG 8
IN
M, 2
LOOP:DIV R, M, N
MUL R, R, N
SUB R, M, R
MOV M, N
MOV N, R
BGT R, 0, LOOP
STOP M
-
***
picoComputer 1 3?
; Adresa za M
; Adresa za N
; Adresa za R
; Pocetak programa
; Ucitavanje M i N
; R := |_ M / N _|
; R := |_ M / N _|*N
; R := M mod N
; M := N
; N := R
; ako R>0 idi na LOOP
50/84
A=4
B=6
C=2
D=5
E=1
F=3
G=0
ORG 8
MOV B, #C
MOV D, #A
MOV (B), D
MOV (C), #B
DIV (A), A, B
SUB (B), C, B
SUB (C), (C), (A)
***
B) OUT F, #F
52/84
picoComputer
N>1:
N=1
adrA = 2
adrK = 3
adrP = 4
T=5
A = 100
ORG 8
IN
MOV
IN
MOV
ADD
A)
-
N
P:SUB adrK, adrK, 1
adrA, #A
MOV T,(adrK)
(adrA), N
MOV (adrK), (adrP)
adrP, adrA
MOV (adrP), T
adrK, adrA,N
ADD adrP, adrP, 1
BGT adrK, adrP, P
OUT (adrA), N
STOP
B)
(C)
53/84
picoComputer, A B,
A=1
JSR Q
B=2
STOP X
X=3
Q:
SUB N,N,1
N=4
BEQ N,0,KRAJ
ORG 8
MUL X,X,B
IN
A,2
JSR Q
MOV X,1
KRAJ: RTS
MOV N,A
) A*B
-
PCAS
B) AB
C) BA
54/84
PCAS
: PCAS.XE
PCAS
pC- pC-.
:
,
(MENU).
55/84
56/84
MENU
R
T /
L /
H
Q
A
M
S
D
C
MENU
57/84
MENU A
pC
( ).
PCA
(ime_prog.PCA).
-
.
59/84
58/84
MENU M
pC (
). HEX
(ime_prog.HEX).
,
-
.
-
60/84
aaaa
(hex)
iiii
MENU S
(hex)
iiii
61/84
MENU D
62/84
MENU C
, ,
ime_prog.HEX
63/84
64/84
MENU R
65/84
MENU T
/
.
,
,
, 07
.
-
MENU L
/
PCAS
ime_prog.LOG
(-; -).
PCAS.LOG ,
.
-
67/84
66/84
MENU H
PCAS-
pC
68/84
$ EDIT ime_prog.PCA
$ PCAS
PCAS-
ime_prog.LOG
( PCAS- )
$ TYPE ime_prog.LOG
69/84
71/84
70/84
72/84
73/84
75/84
74/84
76/84
77/84
79/84
78/84
80/84
81/84
83/84
82/84