fd6c4ad97669b2337696552e264b06aafdfe2c71
[YACASL2.git] / test / system / casl2_opt / opt_sL / 0.txt
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
22
23 Assemble ../../../../as/sample/sum_10.casl (0)
24 ../../../../as/sample/sum_10.casl:    1:;;; sum_10.casl
25 ../../../../as/sample/sum_10.casl:    2:;;; 1から10までの整数をすべて加算した値をメモリーに格納する
26 ../../../../as/sample/sum_10.casl:    3:MAIN    START
27 ../../../../as/sample/sum_10.casl:    4:        PUSH    0,GR1
28 ../../../../as/sample/sum_10.casl:    5:        PUSH    0,GR2
29 ../../../../as/sample/sum_10.casl:    6:        XOR     GR2,GR2         ; GR2を初期化
30 ../../../../as/sample/sum_10.casl:    7:        LD      GR1,FST         ; GR1に初項をメモリーから転送
31 ../../../../as/sample/sum_10.casl:    8:LOOP    ADDL    GR2,GR1         ; ループ先頭。GR2 <- GR2 + GR1
32 ../../../../as/sample/sum_10.casl:    9:        ADDL    GR1,STEP        ; GR1 <- GR1 + 公差
33 ../../../../as/sample/sum_10.casl:   10:        CPL     GR1,LST         ; GR1が末項より大きい場合は終了
34 ../../../../as/sample/sum_10.casl:   11:        JPL     FIN             ; ↓
35 ../../../../as/sample/sum_10.casl:   12:        JUMP    LOOP            ; ループ終端
36 ../../../../as/sample/sum_10.casl:   13:FIN     ST      GR2,RST         ; GR2の結果をメモリーに転送
37 ../../../../as/sample/sum_10.casl:   14:        POP     GR2
38 ../../../../as/sample/sum_10.casl:   15:        POP     GR1
39 ../../../../as/sample/sum_10.casl:   16:        RET
40 ../../../../as/sample/sum_10.casl:   17:FST     DC      1               ; 初項
41 ../../../../as/sample/sum_10.casl:   18:LST     DC      10              ; 末項
42 ../../../../as/sample/sum_10.casl:   19:STEP    DC      1               ; 公差
43 ../../../../as/sample/sum_10.casl:   20:RST     DS      1               ; 結果
44 ../../../../as/sample/sum_10.casl:   21:        END
45
46 Label::::
47 MAIN ---> #0000
48 MAIN.LOOP ---> #0007
49 MAIN.FIN ---> #0010
50 MAIN.FST ---> #0015
51 MAIN.LST ---> #0016
52 MAIN.STEP ---> #0017
53 MAIN.RST ---> #0018