projects
/
YACASL2.git
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
history
|
raw
|
HEAD
valgrindのオプションを変更
[YACASL2.git]
/
as
/
casl2lib
/
src
/
mull0.casl
1
; 符号なし乗算
2
; 入力
3
; GR0 = 被乗数
4
; GR1 = 乗数
5
; 出力
6
; GR3 = 結果
7
MULL START
8
; レジスタを退避
9
PUSH 0,GR1
10
PUSH 0,GR2
11
; 初期化
12
XOR GR3,GR3 ; GR3 = 積
13
; 被乗数をシフトしながら加算していく
14
LOOP SRL GR2,1 ; 最下位ビットが
15
JOV ONE ; 1なら加算
16
JUMP ZERO ; 0なら加算しない
17
ONE ADDL GR3,GR1 ;
18
ZERO SLL GR1,1 ; 被乗数をシフト
19
AND GR2,GR2 ; 乗数に1のビットが
20
JNZ LOOP ; あれば続行
21
; レジスタを復元
22
POP GR2
23
POP GR1
24
RET
25
END