2 ;;; 32ビットの値を、連続する2語の領域に格納
3 ;;; 入力 GR1:数値1の先頭アドレス GR2:数値2の先頭アドレス
7 ST GR1,X ; X <- GR1:数値1
8 ST GR2,Y ; Y <- GR2:数値2
9 LD GR3,LEN ; GR3:語を表すインデックス 初期化
10 XOR GR4,GR4 ; GR4:キャリー値 初期化
12 LOOP AND GR3,GR3 ; ループ先頭。(GR3 = 0)の場合は、ループ脱出
14 LD GR1,X ; GR1 <- (X + GR3)の値
17 LD GR2,Y ; GR2 <- (Y + GR3)の値
20 ADDL GR1,GR2 ; GR1 <- GR1 + GR2
21 JOV CRRY ; オーバーフロー時は、CRRYへジャンプ
22 ADDL GR1,GR4 ; GR1 <- GR1 + GR4
23 JOV CRRY ; オーバーフロー時は、CRRYへジャンプ
24 ST GR1,A,GR3 ; (A + GR3) <- GR1
25 LAD GR3,-1,GR3 ; GR3 <- GR3 - 1
26 XOR GR4,GR4 ; GR4 <- 0
27 JUMP LOOP ; ループ先頭へジャンプ
28 CRRY AND GR3,GR3 ; 最上位の語でオーバーフローした場合、OVへジャンプ
30 ST GR1,A,GR3 ; (A + GR3) <- GR1
31 LAD GR3,-1,GR3 ; GR3 <- GR3 - 1
34 OV LAD GR3,=#8000 ; 強制的にオーバーフロー発生
36 FIN LAD GR0,A ; GR0 <- A