YACAL2: CASL2処理系
[YACASL2.git] / test / astest / summary / 0.txt
1
2 Assemble ../../../as/summary_call.casl (0)
3 ../../../as/summary_call.casl:1:MAIN    START
4 ../../../as/summary_call.casl:2:        LAD GR1,DATA
5 ../../../as/summary_call.casl:3:        LD  GR0,CNT
6 ../../../as/summary_call.casl:4:        CALL SUMMARY
7 ../../../as/summary_call.casl:5:        RET
8 ../../../as/summary_call.casl:6:DATA    DC  #9600,#F000,#A400
9 ../../../as/summary_call.casl:7:CNT     DC  3
10 ../../../as/summary_call.casl:8:        END
11
12 Assemble ../../../as/summary.casl (0)
13 ../../../as/summary.casl:1:SUMMARY START
14 ../../../as/summary.casl:2:        RPUSH
15 ../../../as/summary.casl:3:; カウンタ領域と出力バッファを初期化
16 ../../../as/summary.casl:4:        LD    GR2,=0
17 ../../../as/summary.casl:5:        LD    GR3,=' '
18 ../../../as/summary.casl:6:        LD    GR4,=0          ; ループカウンタ
19 ../../../as/summary.casl:7:        LAD   GR5,PBUF        ; 出力バッファのポインタ
20 ../../../as/summary.casl:8:LOOP1   ST    GR2,COUNTR,GR4  ; カウンタ領域を初期化
21 ../../../as/summary.casl:9:        ST    GR3,0,GR5       ; 出力バッファを空白で初期化
22 ../../../as/summary.casl:10:        ST    GR3,1,GR5
23 ../../../as/summary.casl:11:        ST    GR3,2,GR5
24 ../../../as/summary.casl:12:        LAD   GR5,3,GR5       ; 出力バッファのポインタを更新
25 ../../../as/summary.casl:13:        LAD   GR4,1,GR4       ; ループカウンタを更新
26 ../../../as/summary.casl:14:        CPA   GR4,=16
27 ../../../as/summary.casl:15:        JMI   LOOP1
28 ../../../as/summary.casl:16:; 項目ごとに "はい" と答えた人数を集計
29 ../../../as/summary.casl:17:        LD    GR5,=0          ; GR5: "はい" の人数の最大値
30 ../../../as/summary.casl:18:LOOP2   LD    GR4,=0          ; カウンタ領域のポインタ
31 ../../../as/summary.casl:19:        LD    GR2,0,GR1       ; GR2 ←1人分の回答
32 ../../../as/summary.casl:20:LOOP3   SLL   GR2,1           ; 回答は "はい" ?
33 ../../../as/summary.casl:21:        JOV   ON
34 ../../../as/summary.casl:22:        JZE   NEXTW           ; 残りの項目はすべて "いいえ"
35 ../../../as/summary.casl:23:        JUMP  OFF
36 ../../../as/summary.casl:24:ON      LD    GR3,COUNTR,GR4  ; カウンタに1を加算
37 ../../../as/summary.casl:25:        ADDA  GR3,=1
38 ../../../as/summary.casl:26:        ST    GR3,COUNTR,GR4
39 ../../../as/summary.casl:27:        CPA   GR3,GR5         ; 最大値と比較
40 ../../../as/summary.casl:28:        JPL   CHANGE
41 ../../../as/summary.casl:29:        JUMP  OFF
42 ../../../as/summary.casl:30:CHANGE  LD    GR5,GR3         ; 最大値を入替え
43 ../../../as/summary.casl:31:OFF     LAD   GR4,1,GR4       ; 次の項目
44 ../../../as/summary.casl:32:        JUMP  LOOP3
45 ../../../as/summary.casl:33:NEXTW   LAD   GR1,1,GR1
46 ../../../as/summary.casl:34:        SUBA  GR0,=1          ; 全回答処理済?
47 ../../../as/summary.casl:35:        JPL   LOOP2
48 ../../../as/summary.casl:36:; 集計結果を棒グラフで出力
49 ../../../as/summary.casl:37:        LD    GR5,GR5
50 ../../../as/summary.casl:38:        JZE   FIN
51 ../../../as/summary.casl:39:        LD    GR0,='*'
52 ../../../as/summary.casl:40:LOOP4   LD    GR3,=1          ; 出力バッファのポインタ
53 ../../../as/summary.casl:41:        LD    GR4,=0          ; カウンタ領域のポインタ
54 ../../../as/summary.casl:42:LOOP5   CPA   GR5,COUNTR,GR4  ; "はい" の人数と比較
55 ../../../as/summary.casl:43:        JNZ   NOTSET
56 ../../../as/summary.casl:44:        ST    GR0,PBUF,GR3    ; 出力バッファに "*" を設定
57 ../../../as/summary.casl:45:NOTSET  LAD   GR3,3,GR3       ; 出力バッファのポインタを更新
58 ../../../as/summary.casl:46:        LAD   GR4,1,GR4       ; カウンタ領域のポインタを更新
59 ../../../as/summary.casl:47:        CPA   GR4,=16
60 ../../../as/summary.casl:48:        JMI   LOOP5
61 ../../../as/summary.casl:49:        OUT   PBUF,PLEN
62 ../../../as/summary.casl:50:        SUBA  GR5,=1
63 ../../../as/summary.casl:51:        JPL   LOOP4
64 ../../../as/summary.casl:52:FIN     OUT   FOOTER,PLEN
65 ../../../as/summary.casl:53:        RPOP
66 ../../../as/summary.casl:54:        RET
67 ../../../as/summary.casl:55:COUNTR  DS    16              ; カウンタ領域
68 ../../../as/summary.casl:56:PLEN    DC    48
69 ../../../as/summary.casl:57:PBUF    DS    48              ; 出力バッファ
70 ../../../as/summary.casl:58:FOOTER  DC    '01 02 03 04 05 06 07 08 09 10 11 12 13 '
71 ../../../as/summary.casl:59:        DC    '14 15 16 '
72 ../../../as/summary.casl:60:        END
73
74 Label::::
75 PBUF ---> #00AD
76 LOOP1 ---> #0021
77 LOOP2 ---> #0033
78 LOOP3 ---> #0037
79 LOOP4 ---> #005A
80 LOOP5 ---> #005E
81 COUNTR ---> #009C
82 CNT ---> #000A
83 OFF ---> #004B
84 SUMMARY ---> #000B
85 FOOTER ---> #00DD
86 PLEN ---> #00AC
87 DATA ---> #0007
88 NOTSET ---> #0064
89 CHANGE ---> #004A
90 MAIN ---> #0000
91 NEXTW ---> #004F
92 ON ---> #003F
93 FIN ---> #0082
94
95 Assemble ../../../as/summary_call.casl (1)
96
97 Assemble ../../../as/summary.casl (1)
98  *                                              
99  *     *  *     *                               
100  *  *  *  *     *  *                            
101 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16