平成24年秋期試験午後問題 問12

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

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

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

〔プログラム1,2の説明〕
 与えられた値xに対し,係数が全て1であるn次多項式F(x,n)の値を 求める副プログラム POLY である。

  F(x,n)=xn+xn-1+…+x+1 (n≧1)
  • POLY は,多項式の次数 n が GR1 に,x の値が GR2 に設定されて呼ばれ,計算結果を GR0 に設定して呼出し元に戻る。n は1~32767の整数,x は非負の整数とし,F(x,n)の値が16ビット符号なし2進整数の範囲に収まるように与えられる。POLY は,その中で副プログラム MULT を利用する。
  • MULT は,16ビット符号なし2進整数同士の乗算を行う副プログラムであり,被乗数と乗数がそれぞれ GR0,GR2 に設定されて呼ばれ,乗算結果を GR0 に設定して呼出し元に戻る。乗算結果などの桁あふれは発生しないものとする。
  • 副プログラムから戻るとき,汎用レジスタ GR1~GR7 の内容は元に戻す。
pm12_1.gif

設問1

プログラム1,2中の に入れる正しい答えを,解答群の中から選べ。
a に関する解答群
  • JMI  BRK
  • JMI  FIN
  • JNZ  BRK
  • JNZ  FIN
  • JZE  BRK
  • JZE  FIN
b に関する解答群
  • JMI  CONT
  • JMI  FIN
  • JNZ  CONT
  • JOV  CONT
  • JPL  CONT
  • JZE  FIN
c に関する解答群
  • ADDL GR0,GR2
  • LD  GR2,GR1
  • OR  GR2,=#0001
  • SLL  GR1,1
  • SRA  GR1,1
  • SRL  GR1,1
解答選択欄
  • a:
  • b:
  • c:
  • a=
  • b=
  • c=

解説

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

設問2

プログラム1の POLY を使用してF(x,4)を計算するとき,行番号9の CALL 命令が実行される回数として正しい答えを,解答群の中から選べ。
解答群
  • 4
  • 5
  • 10
  • 11
  • 15
  • 16
解答選択欄
  •  
  •  

解説

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

設問3

関数F(x,n)は,次のように変形できる。
  • F(x,n)=x×(xn-1+xn-2+…+x+1)+1 (n≧1)
 更に次のように,再帰的に表現することができる。
  • F(x,0)=1
  • F(x,n)=x×F(x,n-1)+1 (n≧1)
 この再帰表現を実装する,プログラム3の POLY2 を作成した。プログラム3中の に入れる正しい答えを,解答群の中から選べ。ここで,POLY2 は POLY と同様に呼ばれる。
pm12_2.gif
解答群
  • LAD  GR1,-1,GR1
  • LAD  GR1,1,GR1
  • LD   GR1,GR2
  • LD   GR2,GR1
  • POP  GR1
  • PUSH  0,GR1
解答選択欄
  •  
  •  

解説

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

設問4

次の記述中の に入れる正しい答えを,解答群の中から選べ。

 プログラム3の POLY2 を使用してF(x,4)を計算するとき,行番号 6 のラベル RSUB の行にはd回制御が移る。また,行番号 12 のCALL命令はe回実行される。
d,e に関する解答群
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
解答選択欄
  • d:
  • e:
  • d=
  • e=

解説

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

Pagetop