projects
/
YACASL2.git
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
history
|
raw
|
HEAD
アセンブラファイルとテストの整理
[YACASL2.git]
/
as
/
FUNC
/
divl0.casl
1
;;; GR1の値とGR2の値の、商をGR0、剰余をGR3に格納する
2
;;; 0〜65535の範囲の数値を扱う
3
DIVL START
4
PUSH 0,GR1
5
AND GR2,GR2 ; (GR2 = 0)の場合、DYZへジャンプ
6
JZE DYZ ; ↓
7
LAD GR0,0 ; GR0を初期化
8
LD GR3,GR1 ; GR3 <- GR1
9
DLOOP CPL GR3,GR2 ; ループ先頭。(GR3 < GR2)の場合、終了
10
JMI DFIN ; ↓
11
SUBL GR3,GR2 ; GR3 <- GR3 - GR2
12
ADDL GR0,DONE ; ↓
13
JUMP DLOOP ; ループ終端
14
DYZ LAD GR3,#FFFF ; 強制的にオーバーフローを発生させ、GR3 <- 0
15
ADDL GR3,=1 ; ↓
16
JUMP DFIN ; DFINへジャンプ
17
DFIN POP GR1
18
RET
19
DONE DC 1
20
END