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