平成26年春期試験午後問題 問12

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】

問12 ソフトウェア開発(アセンブラ)

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

〔プログラム1の説明〕
 文字列中の単語を切り出して,単語管理テーブルを作成する副プログラム GETTKN である。
  • 文字列は英字,数字,空白文字のO文字以上の並びで,最後にピリオドが置かれる。単語は,1文字以上の空白文字又はピリオドで区切られた英数字の並びである。英字には,アルファベットの他に,ピリオド以外の記号を含むものとする。文字列表記中の"△"は空白文字を示す。
  • 単語管理テーブルには,文字列中に現れる単語ごとに,3語から成る要素を作成し,単語の先頭アドレス,単語の長さ,単語の種別の順に格納する。種別は,単語が数字だけから成るときは 0,英字を含むときは 1 とする。単語の切出しが終了したとき,単語管理テーブルの終端を示すマークとして -1 を格納する。
  • 主プログラムは,文字列の先頭アドレスを GR1 に,単語管理テーブルの先頭アドレスを GR2 に設定して,GETTKN を呼ぶ。
  • 副プログラム GETTKN から戻るとき,汎用レジスタ GR1~GR7 の内容は元に戻す。
 副プログラム GETTKN の実行例を,図1に示す。
pm12_1.png
pm12_2.png

設問1

プログラム1中の に入れる正しい答えを,解答群の中から選べ。
a に関する解答群
  • JUMP ACHK
  • JUMP LP
  • LAD  GR1,-1,GR1
  • LAD  GR1,1,GR1
  • LD  GR4,0,GR1
  • LD  GR4,1,GR1
b に関する解答群
  • ADDL GR5,GR6
  • LAD  GR3,1,GR3
  • SLL  GR3,1
  • SLL  GR5,1
  • SRL  GR5,1
  • SUBL GR5,GR6
解答選択欄
  • a:
  • b:
  • a=
  • b=

解説

この設問の解説はまだありません。

設問2

次の文字列が与えられ,プログラム1のラベル NEXT が付いた命令を2度目に実行した直後に GR4 に設定されている文字として,正しい答えを,解答群の中から選べ。
pm12_3.png
解答群
  • 1
  • 2
  • 3
  • A
  • B
  • C
解答選択欄
  •  
  •  

解説

この設問の解説はまだありません。

設問3

GETTKN を使用して,指示に従い2数の和,差,積のいずれかを求める副プログラム CALC を作成した。プログラム2中の に入れる正しい答えを,解答群の中から選べ。
  • 主プログラムは,文字列の先頭アドレスを GR1 に設定して,CALC を呼ぶ。CALC は演算結果を GR0 に設定して呼出し元に戻る。文字列の形式を図2に示す。
    pm12_4.png
  • 数字文字列は 0~65535 の整数(符号なしの数字文字列)で1文字以上の文字列とし,演算子は加算(+),減算(-),乗算(*)を表す記号1文字とする。演算はそれぞれ論理加算,論理減算,整数の乗算として実行し,桁あふれは発生しないものとする。
  • CALC は,GETTKN で切り出した数字だけから成る単語を2進数に変換するために,別に用意された副プログラム DTOB を呼ぶ。
  • DTOB は,数字文字列格納領域の先頭アドレスと文字列の長さが順に格納された2語から成る領域の先頭アドレスが GR1 に設定されて,呼び出される。
     DTOB は数字文字列を2進数に変換し,GR0 に設定して呼出し元に戻る。
    pm12_5.png
  • 副プログラム CALC,DTOB から戻るとき,汎用レジスタ GR1~GR7 の内容は元に戻す。
pm12_6.png
c に関する解答群
  • LAD  GR1,3,GR2
  • LD  GR1,0,GR2
  • LD  GR1,CTBL
  • LD  GR1,GR2
  • LD  GR2,CTBL
  • LD  GR2,GR1
d に関する解答群
  • LAD  GR3,LTBL
  • LAD  GR3,LTBL,GR3
  • LD  GR3,LTBL
  • LD  GR3,LTBL,GR3
  • SLL  GR3,1
e に関する解答群
  • ADDL GR0,GR5
  • ADDL GR5,GR4
  • LD  GR5,GR4
  • SLL  GR5,1
  • SRL  GR5,1
解答選択欄
  • c:
  • d:
  • e:
  • c=
  • d=
  • e=

解説

この設問の解説はまだありません。

Pagetop