マクロの内部処理を変更
[YACASL2.git] / as / app / sum / sum_10_2.casl
1 ;;; sum_10.casl
2 ;;; 出力 GR0: 1から10までの整数をすべて加算した値
3 ;;; 依存プログラム: mull1.casl divl1.casl
4 MAIN    START
5         PUSH    0,GR1
6         PUSH    0,GR2
7         LD      GR1,FST         ; GR1 <- (初項 + 末項)
8         ADDL    GR1,LST         ; ↓
9         PUSH    0,GR1           ; GR1を退避
10         LD      GR1,LST         ; GR1 <- (末項 - 初項)
11         SUBL    GR1,FST         ; ↓
12         LD      GR2,GR1         ; ↓
13         LD      GR2,STEP        ; GR2 <- STEP
14         CALL    DIVL            ; GR0 <- GR1 / GR2
15         LD      GR2,GR0         ; GR2 <- GR0
16         LAD     GR2,1,GR2       ; GR2 <- GR2 + 1
17         SRL     GR2,1           ; GR2 <- GR2 / 2
18         POP     GR1             ; GR1を復元
19         CALL    MULL            ; GR0 <- GR1 * GR2
20         POP     GR2
21         POP     GR1
22         RET
23 FST     DC      1               ; 初項
24 LST     DC      10              ; 末項
25 STEP    DC      1               ; 公差
26         END