comet2コマンド実行時のリセット位置を変更
[YACASL2.git] / as / FUNC / addl32.casl
1 ;;; 2つの32ビット数値を加算する
2 ;;; 32ビットの値は、連続する2語の領域に格納
3 MAIN    START   BEGIN
4 BEGIN   LAD     GR1,1           ; GR1にAの下位語を転送
5         LD      GR1,A,GR1       ; ↓
6         LAD     GR2,1           ; GR2にBの下位語を転送
7         LD      GR2,B,GR2       ; ↓
8         ADDL    GR1,GR2         ; GR1 <- GR1 + GR2
9         JOV     CARR            ; オーバーフロー時は、CARRにジャンプ
10         JUMP    STL
11 CARR    LAD     GR2,1           ; Cの上位語に1を格納
12         ST      GR2,C           ; ↓
13 STL     LAD     GR2,1           ; Cの下位語にGR1の内容を格納
14         ST      GR1,C,GR2       ; ↓
15         LD      GR1,A           ; GR1にAの上位語を転送
16         ADDL    GR1,B           ; GR1 <- GR1 + B
17         ADDL    GR1,C           ; GR1 <- GR1 + C
18         RET
19 A       DC      0,65534
20 B       DC      0,65535
21 C       DS      2
22         END