![]()
平成24年 秋期 基本情報技術者 午後 問12
問12 CASL次のアセンブラプログラムの説明及びプログラムを読んで,設問1〜4に答えよ。 〔プログラム1,2の説明〕 与えられた値 x に対し,係数が全て1である n 次多項式 F(x,n) の値を 求める副プログラム POLY である。 (2) MULT は,16 ビット符号なし2進整数同士の乗算を行う副プログラムであり, 被乗数と乗数がそれぞれ GR0 ,GR2 に設定されて呼ばれ,乗算結果を GR0 に設定して呼出し元に戻る。 乗算結果などの桁あふれは発生しないものとする。 (3) 副プログラムから戻るとき,汎用レジスタ GR1 〜 GR7 の内容は元に戻す。
〔プログラム1〕 1 POLY START 2 RPUSH 3 LD GR4,=0 ; 計算結果格納レジスタの初期化 4 LP1 LD GR3,GR1 5 〔プログラム2] MULT START ; シフトによる乗算 RPUSH LD GR1,GR0 LD GR0,=0 ; 乗算結果の初期化 LD GR2,GR2 LP
設問1 プログラム1,2中の a に関する解答群 エ JNZ FIN オ JZE BRK カ JZE FIN b に関する解答群 エ JOV CONT オ JPL CONT カ JZE FIN c に関する解答群 エ SLL GR1,1 オ SRA GR1,1 カ SRL GR1,1
設問2 プログラム1の POLY を使用して F(x, 4) を計算するとき, 行番号9の CALL 命令が実行される回数として正しい答えを,解答群の中から選べ。 解答群 エ 11 オ 15 カ 16 設問3 関数 F(x, n) は,次のように変形できる。 F(x, n)=x×(xn−1+xn−2+…+x+1)+1 (n≧1) 更に次のように,再帰的に表現することができる。
F(x, 0)=1
この再帰表現を実装する,プログラム3の POLY2 を作成した。
プログラム3中の
〔プログラム3〕 1 POLY2 START 2 RPUSH 3 CALL RSUB ; 再帰処理の本体を呼ぶ 4 RPOP 5 RET ; 主プログラムへ戻る 6 RSUB LD GR1,GR1 ; n=0 ? 7 JNZ CONT ; n≠0 なら CONT ヘ 8 LD GR0,=1 ; GR0 ← F(x,0)の値(=1) 9 RET 1O CONT 解答群 ウ LD GR1,GR2 エ LD GR2,GR1 オ POP GR1 カ PUSH 0,GR1 設問4 次の記述中の ![]()
プログラム3の POLY2 を使用して F(x, 4) を計算するとき,
行番号6のラベル RSUB の行には d,e に関する解答群 エ 4 オ 5 カ 6
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2024 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
|