平成7年度 春期 第二種 午後 問14

                        [更新日]1995.05.22
問14 次のアセンブラプログラムの説明及びプログラムを読んで、設問 に答えよ。 [プログラムの説明] 入力した文字列を単語に分け、各単語の先頭アドレスと長さを テーブルに格納する。 (1) サブルーチンWRDSCNは、主プログラムから呼ばれると、入力 装置から入力領域に、1レコードの文字列を入力する。 (2) 入力した文字列を、間隔文字を区切り記号として単語に分解す る。 (3)分解した単語の先頭アドレスと長さを、サブルーチン内の領域 TABLEに図のように格納する。 ┌─────────────┐ TABLE +0 │1番目の単語の先頭アドレス│ ├─────────────┤ +1 │1番目の単語の長さ    │ ├─────────────┤ +2 │2番目の単語の先頭アドレス│ ├─────────────┤ +3 │2番目の単語の長さ    │ ├─────────────┤ │     :       │ ├─────────────┤ +n-1 │最後の単語の先頭アドレス │ ├─────────────┤ +n │最後の単語の長さ     │ └─────────────┘ 図 TABLEの内容 (4) TABLEに格納後、GR1にTABLEの先頭アドレスを格納して主プ ログラムに戻る。空のレコードの入力又はEOFが検出された場 合には、GR1に-1を格納して主プログラムに戻る。 01 WRDSCN START ; 02 IN INBUF,INLNG ; 03 LD GR3,INLNG ; 04 LEA GR3,-1,GR3 ; 05 JMI ERROR ; 06 LEA GR1,-1 ; 07 LEA GR2,0 ; 08 LEA GR3,0 ;単語中かどうかのフラグ初期化 09 ST GR3,WRDLNG ;単語の長さ初期化 10 LOOP LEA GR1,1,GR1 ; 11 CPL GR1,INLNG ;文字列終了か 12 JZE BREAK ; 13 LD GR0,INBUF,GR1 ; 14 CPL GR0,SPACE ;間隔文字か 15 JZE NONWRD ; 16 LEA GR3,0,GR3 ;単語中か 17 JNZ LNGUP ; 18 LEA GR0,INBUF,GR1 ; 19 ST GR0,TABLE,GR2 ;単語の先頭アドレスをテーブルへ 20 LEA GR2,1,GR2 ; 21 LEA GR3,1 ;フラグを単語中へ 22 LNGUP LEA GR0,1 ;単語の長さに1加算 23 ADD GR0,WRDLNG ; 24 ST GR0,WRDLNG ; 25 JMP LOOP ; 26 NONWRD LEA GR3,0,GR3 ;単語中か 27 JZE LOOP ; 28 LD GR0,WRDLNG ; 29 ST GR0,TABLE,GR2 ;単語の長さをテーブルへ 30 LEA GR2,1,GR2 ; 31 LEA GR3,0 ;フラグを初期化 32 ST GR3,WRDLNG ;単語の長さを初期化 33 JMP LOOP ; 34 BREAK LEA GR3,0,GR3 ;単語中か 35 JZE RETURN ; 36 LD GR0,WRDLNG ; 37 ST GR0,TABLE,GR2 ; 38 RETURN LEA GR1,TABLE ; 39 RET ; 40 ERROR LEA GR1,-1 ; 41 RET ; 42 INBUF DS 80 ; 43 INLNG DS 1 ; 44 TABLE DS 80 ; 45 WRDLNG DS 1 ; 46 SPACE DC ' ' ; 47 END ; 設問 このプログラムに関する次の記述中の[ ]に入れる正しい答を、 解答群の中から選べ。 (1) 次の文字列を入力した場合、22行めは[ a ]回実行される。 実行後、主プログラムに戻る時のGR2の内容は[ b ]、GR3の 内容は[ c ]である。 100  102  104  106  108  110  112  114番地 ┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐ INBUF│△│I│△│h│a│v│e│△│△│a│△│b│o│o│k│ └─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘ ┌──┐ INLNG│15│ 注 △は間隔文字を表す。 └──┘ (2) テーブルの最後を明示するために、最後の単語の長さを格納した 次の語に-1を格納するように修正したい。その場合、39行目の前に 〔1〕の2行を挿入し、[ d ]行目の前に〔2〕の1行を挿入すれば よい。 〔1〕 LEA GR0,-1     ST GR0,TABLE,GR2 〔2〕 LEA GR2,1,GR2 a 〜 cに関する解答群 ア 0 イ 1 ウ 4 エ 6 オ 7 カ 8 キ 10 ク 11 ケ 14 コ 15 d に関する解答群 ア 34 イ 35 ウ 36 エ 37 オ 38
戻る 次頁:問15