平成27年 春期 基本情報技術者 午後 問12
問12 CASL次のアセンブラプログラムの説明及びプログラムを読んで,設問1〜3に答えよ。 〔プログラム1,2の説明〕 非負整数 n について,階乗の値 F(n) を求める副プログラム FACT である。
F(n) = n × (n−1)×…× 1 ( n ≧ 2) (1) FACT は,n が GR1 に設定されて呼ばれ,計算結果を GRØ に設定して呼出し元に戻る。 n は,F(n) の値が 16 ビット符号なし2進整数の範囲に収まるように与えられる。 FACT は副プログラム MULT を利用する。 (2) MULT は,16 ビット符号なし2進整数同士の乗算を行う副プログラムであり, 被乗数と乗数がそれぞれ GRØ,GR2 に設定されて呼ばれ, 乗算結果を GRØ に設定して呼出し元に戻る。乗算結果の桁あふれは発生しないものとする。 (3) 副プログラムから戻るとき,汎用レジスタ GR1 〜 GR7 の内容は元に戻す。 〔プログラム1] (行番号) 1 FACT START 2 RPUSH 3 LD GRØ,=1 4 SUBL GR1,=1 5 6 JUMP FIN 7 NEXT LD GR2,=1 8 LP LAD GR2,1,GR2 9 CALL MULT 1Ø 11 JNZ LP 12 FIN RPOP 13 RET 14 END〔プログラム2〕 MULT START ; シフトによる乗算 RPUSH LD GR1,GRØ ; 被乗数を GR1 に保持 LD GRØ,=Ø ; 乗算結果の初期化設問1 プログラム1,2中の に入れる正しい答えを, 解答群の中から選べ。 a に関する解答群 エ JPL NEXT オ JZE NEXT エ SRL GR1,1 オ SUBL GR1,=1 c に関する解答群 エ SRL GRØ,Ø,GR3 オ SRL GR1,Ø,GR3 カ SRL GR4,Ø,GR3
設問2 プログラム1の FACT を使用して F(4) を求めるとき,行番号 12 の RPOP 命令 実行直前の GR2 に設定されている値として正しい答えを,解答群の中から選べ。 解答群 設問3 F(n) は次のように再帰的に表現することができる。
F(n)= n × F(n−1) ( n ≧ 2 ) 次の記述中の に入れる正しい答えを,解答群の中から選べ。 FACT2 を使用して F(3) を求めるとき,行番号 11 の命令を 初めて実行した直後の SP の値は である。 また,当該 SP で示される番地に格納されている値は である。 〔プログラム3〕 (行番号) 1 FACT2 START 2 RPUSH 3 CALL RSUB ; 再帰処理の本体を呼ぶ 4 RPOP 5 RET ; 主プログラムヘ戻る 6 RSUB LD GR4,GR1 7 SUBL GR4,=1 8 JPL NEXT ; n≧2 の場合 NEXT ヘ 9 LD GRØ,=1 ; GRØ ← F(Ø),F(1) の値 1Ø RET 11 NEXT PUSH Ø,GR1 12 LAD GR1,-1,GR1 13 CALL RSUB ; F(n−1) を計算 14 POP GR2 15 CALL MULT 16 RET 17 ENDd に関する解答群 エ B - 1 オ B - 2 e に関する解答群 イ 2 ウ 3 エ 行番号 4 の命令が置かれたアドレス オ 行番号 14 の命令が置かれたアドレス
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2024 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
|