平成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 6 LD GR0,=1 ; xn の計算開始 7 LP2 LD GR3,GR3 8 JZE BRK ; xnの計算終了なら BRK へ 9 CALL MULT ; (GR0) ← (GR0)×(GR2) 10 LAD GR3,-1,GR3 11 JUMP LP2 12 BRK ADDL GR4,GR0 ; 計算結果格納レジスタに xn の値を加算 13 LAD GR1,-1,GR1 ; n から1を減じ,低次の項の計算へ 14 JUMP LP1 15 FIN LD GR0,GR4 16 RPOP 17 RET 18 END 〔プログラム2] MULT START ; シフトによる乗算 RPUSH LD GR1,GR0 LD GR0,=0 ; 乗算結果の初期化 LD GR2,GR2 LP LD GR3,GR2 AND GR3,=#0001 ; 最下位ビットのチェック JZE CONT ADDL GR0,GR1 CONT SRL GR2,1 JUMP LP FIN RPOP RET END 設問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中の に入れる正しい答えを,解答群の中から選べ。 ここで,POLY2 は POLY と同様に呼ばれる。
〔プログラム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 11 CALL RSUB ; F(x, n−1) を計算 12 CALL MULT 13 ADDL GR0,=1 14 RET 15 END 解答群 ウ LD GR1,GR2 エ LD GR2,GR1 オ POP GR1 カ PUSH 0,GR1 設問4 次の記述中の に入れる正しい答えを, 解答群の中から選べ。 プログラム3の POLY2 を使用して F(x, 4) を計算するとき, 行番号6のラベル RSUB の行には 回制御が移る。 また,行番号 12 の CALL 命令は 回実行される。 d,e に関する解答群 エ 4 オ 5 カ 6
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2024 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
|