MAIN START LAD GR1,ARG ;パラメータのアドレス CALL SUB ;副プログラムの呼び出し RET ARG DC 3,DATA,ANS ;パラメータリスト DATA DC #F000,#300F,#8000 ;アンケート結果 ANS DS 16 ;集計結果 END SUB START ;アンケート [b09.cas] RPUSH ;汎用レジスタの退避 LD GR2,0,GR1 ;人数 ST GR2,NN ;人数の保存 [ a ] LD GR2,1,GR1 ;データ LAD GR6,16 LAD GR5,0 LD GR3,2,GR1 ;結果格納場所 LOOP ST GR5,0,GR3 ;ゼロクリア LAD GR3,1,GR3 SUBA GR6,=1 JPL LOOP LAD GR6,0 ;カウンタ TOP LD GR4,0,GR2 ;データの取り出し LD GR3,2,GR1 ;結果 N0 SLL GR4,1 ;1ビット左シフト [ b ] JOV UP JZE N2 JUMP N1 UP LD GR5,0,GR3 LAD GR5,1,GR5 ;YESの数を1追加 ST GR5,0,GR3 ;格納 N1 LAD GR3,1,GR3 JUMP N0 N2 LAD GR2,1,GR2 ;次のデータ LAD GR6,1,GR6 ;カウンタを1追加 [ c ] CPA GR6,NN JMI TOP RPOP ;汎用レジスタの復元 RET NN DS 1 END