CASLⅡで再帰を実行する
CASLⅡにおける再帰の例を挙げる。
'Hi!'と3回繰り返す。
; 'Hi!'と3回表示する
MAIN START
LAD GR0,3
CALL HI
RET
;
;GR0回、'Hi!'と表示する
HI START
LD GR0,GR0
JZE FIN
;
OUT HIMSG,LEN
SUBA GR0,=1
CALL HI
FIN RET
;
HIMSG DC 'Hi! '
LEN DC 4
END
フィボナッチ数列をGR1とGR2に求める
; フィボナッチ数列をGR1とGR2に求める
; 0, 1, 1, 2, 3, 5 ……
MAIN START
LAD GR0,4 ; GR1=0, GR2=1から数えて、4回目のGR1=3,GR2=5を求める
LAD GR1,0
LAD GR2,1
CALL FIB
RET
;
FIB START
LD GR0,GR0
JZE FIN
;
XOR GR1,GR2 ; GR1とGR2を交換する
XOR GR2,GR1
XOR GR1,GR2
;
ADDA GR2,GR1
;
SUBA GR0,=1
CALL FIB
FIN RET
;
END