as/sample/sum_10.caslを変更
[YACASL2.git] / as / sample / sum_10.casl
1 ;;; sum_10.casl
2 ;;; 1から10までの整数をすべて加算した値をメモリーに格納する
3 MAIN    START
4         PUSH    0,GR1
5         PUSH    0,GR2
6         XOR     GR2,GR2         ; GR2を初期化
7         LD      GR1,FST         ; GR1に初項をメモリーから転送
8 LOOP    ADDL    GR2,GR1         ; ループ先頭。GR2 <- GR2 + GR1
9         ADDL    GR1,STEP        ; GR1 <- GR1 + 公差
10         CPL     GR1,LST         ; GR1が末項より大きい場合は終了
11         JPL     FIN             ; ↓
12         JUMP    LOOP            ; ループ終端
13 FIN     ST      GR2,RST         ; GR2の結果をメモリーに転送
14         POP     GR2
15         POP     GR1
16         RET
17 FST     DC      1               ; 初項
18 LST     DC      10              ; 末項
19 STEP    DC      1               ; 公差
20 RST     DS      1               ; 結果
21         END