projects
/
YACASL2.git
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
history
|
raw
|
HEAD
クロック周波数の定義を追加
[YACASL2.git]
/
as
/
outi0.casl
1
;GR1に格納された数値を表示
2
OUTI START
3
PUSH 0,GR2
4
PUSH 0,GR3
5
PUSH 0,GR4
6
LAD GR0,0
7
LAD GR2,0
8
AND GR1,GR1
9
JPL ILOOP
10
JZE ILOOP
11
LAD GR0,1
12
CALL INV
13
ILOOP CPA GR1,TEN
14
JMI INEXT
15
CALL DIV
16
ADDA GR4,ZCHAR
17
ST GR4,STR,GR2
18
LAD GR2,1,GR2
19
LD GR1,GR3
20
JUMP ILOOP
21
INEXT ADDA GR1,ZCHAR
22
ST GR1,STR,GR2
23
LAD GR2,1,GR2
24
CPA GR0,=1
25
JPL PRT
26
JMI PRT
27
LD GR1,MINUS
28
ST GR1,STR,GR2
29
LAD GR2,1,GR2
30
PRT ST GR2,LEN
31
LAD GR1,STR
32
LD GR2,LEN
33
CALL REV
34
OUT STR,LEN
35
POP GR4
36
POP GR3
37
POP GR2
38
RET
39
TEN DC 10
40
ZCHAR DC '0'
41
MINUS DC '-'
42
STR DS 6
43
LEN DS 1
44
END
45
;GR1を10で割ったときの商をGR3、剰余をGR4に格納
46
DIV LD GR4,GR1
47
LAD GR3,0
48
DLOOP CPA GR4,TEN
49
JMI DFIN
50
SUBL GR4,TEN
51
LAD GR3,1,GR3
52
JUMP DLOOP
53
DFIN RET
54
END
55
;アドレスがGR1、長さがGR2の文字列を逆順に並べ替える
56
;例: 12345 -> 54321
57
REV START
58
PUSH 0,GR3
59
PUSH 0,GR4
60
PUSH 0,GR5
61
LAD GR3,1
62
RPU CPA GR2,GR3
63
JMI RNEXT
64
LD GR4,GR1
65
ADDA GR4,GR3
66
LD GR4,-1,GR4
67
PUSH 0,GR4
68
LAD GR3,1,GR3
69
JUMP RPU
70
RNEXT LAD GR3,1
71
RPO CPA GR2,GR3
72
JMI RFIN
73
POP GR4
74
LD GR5,GR1
75
ADDA GR5,GR3
76
ST GR4,-1,GR5
77
LAD GR3,1,GR3
78
JUMP RPO
79
RFIN POP GR5
80
POP GR4
81
POP GR3
82
RET
83
END
84
;GR1の内容をマイナス値にする
85
;例: 10 -> -10, -20 -> 20
86
INV START
87
XOR GR1,=#FFFF
88
LAD GR1,1,GR1
89
RET
90
END