東京理科大学 infoserv[更新日]2000.5.1


問10 次のアセンブラプログラムの説明及びプログラムを読んで,設問に答えよ。

〔プログラムの説明〕

入力装置からデータを読み取り,一つの文ごとにその中に含まれる語数を 出力するプログラムである。

(1) 一つの文は,全く語を含まない空文,1 語だけ,又は 1 個以上の空白で区切られた複数の語から構成される。文の終わりは“.”(ピリオド)で示す。

(2) 語は,空白又はピリオド以外の文字の並びである。

(3) 入力データはレコード単位に読み取られる。一つの文又は語が複数のレコードに またがることもあるし,複数の文が一つのレコードに含まれることもある。また, 全く文字を含まないレコードもあり得る。

(4) プログラム中で使用される副プログラム DECPRN は,GR1 で渡された 2 進数を
10 進数に変換して出力する。

〔プログラム〕

WCNT   START
       LEA   GR2,0          ;入力ポインタ初期化
       ST    GR2,INLENG
LP1    LEA   GR1,0          ;語数カウンタ初期化
LP2    CALL  GETCHR         ;1文字取得
       JZE   FIN
       CPL   GR0,WDELM      ;語の区切り文字?
       
       CPL   GR0,SDELM      ;文の区切り文字?
       JZE   SEND
LP3    CALL  GETCHR
       JZE   FIN
       CPL   GR0,WDELM
       JZE   WEND
       CPL   GR0,SDELM
       JNZ   LP3            ;区切り文字でなければLP3へ
WEND   LEA   GR1,1,GR1      ;語数のカウントアップ
       CPL   GR0,SDELM
       
SEND   CALL  DECPRN         ;語数の出力
       JMP   LP1
FIN    EXIT
 
GETCHR CPA   GR2,INLENG     ;1文字取得処理
       JZE   GETREC
       LD    GR0,INBUFF,GR2
       
       RET
GETREC LEA   GR2,0
       IN    INBUFF,INLENG  ;入力装置から1レコード読取り
       
       CPA   GR0,EOF         ;入力データの終了?
       JNZ   GETCHR 
       RET
 
WDELM  DC    ' '
SDELM  DC    '.'
EOF    DC    -1
INBUFF DS    80
INLENG DS    1
       END

設問 プログラム中の に入れる正しい答えを,解答群の中から選べ。

a に関する解答群

ア JNZ LP2    イ JNZ LP3

ウ JZE LP2    エ JZE LP3

オ JZE WEND

b に関する解答群

ア JNZ LP2    イ JNZ LP3

ウ JZE LP2    エ JZE LP3

オ JNZ WEND 

c に関する解答群

ア LEA GR1,1,GR1    イ LEA GR2,-1,GR2

ウ LEA GR2,1,GR2    エ ST GR0,INLENG

オ ST GR2,INLENG 

d に関する解答群

ア LD GR0,0,GR2    イ LD GR0,INBUFF,GR2

ウ LD GR0,INBUFF    エ LD GR0,INLENG


東京理科大学 infoserv 戻る 次頁:問11