![]()
平成15年 秋期 基本情報技術者 午後 問13
問13 CASL次のアセンブラプログラムの説明及びプログラムを読んで,設問1〜3に答えよ。 〔プログラムの説明〕 副プログラム BINS は,次に示すように,ビット列1の左端の部分ビット列 A を ビット列2の指定された位置に挿入する。 m,n はそれぞれビット数を表す。
(1) ビット列1とビット列2の長さは,それぞれ 16 ビット(1語)とする。 (2) GR0 〜 GR3には,それぞれ次の内容が設定されて,主プログラムから渡される。 GR0:ビット列 1 GR1:ビット列2が格納されている語のアドレス GR2:m GR3:n (3) 0 ≦ m < 16,0 ≦ n < 16,m + n ≦ 16 とする。 (4) 部分ビット列 C のはみ出した部分は捨てられる。 (5) 副プログラムから戻るとき,汎用レジスタ GR1 〜 GR7 の内容は元に戻す。
〔プログラム〕 (行番号)
設問1 プログラム中の
解答群 ア SLL GR0,0,GR2 イ SLL GR0,0,GR4 ウ SLL GR0,0,GR5 エ SLL GR0,0,GR6 オ SRL GR2,0,GR3 カ SRL GR2,0,GR4 キ SRL GR2,0,GR5 ク SRL GR2,0,GR6
設問2 次の記述中の
主プログラムから渡されたビット列 1,ビット列 2,m,n の内容が次のとおりのとき,
行番号 16 の OR 命令実行直前の GR7 の内容は
![]()
設問3 副プログラム BINS を使用して,次に示すように, 部分ビット列 A を長さが 32 ビット(2語)のビット列2に挿入する 副プログラム BINSL を作成した。
主プログラムから渡されるレジスタの内容は,次のとおりとする。 GR0:ビット列 1 GR1:ビット列2が格納されている領域の先頭アドレス GR2:m GR3:n ![]() 中から選べ。
BINSL START RPUSH CPA GR3,=15 ; n ≧ 16 ? JPL RIGHT ; YES LD GR7,0,GR1 ; ビット列2の第1語を退避 LD GR5,GR2 ADDA GR5,GR3 ; GR5 ← m + n CPA GR5,=17 ; m + n ≦ 16 ? JMI LEFT ; YES LAD GR2,16 SUBA GR2,GR3 LD GR6,GR0 ; 部分ビット列 A のはみ出す部分を SLL GR6,0,GR2 ; 左端に寄せてビット列1を退避 LEFT CALL BINS ; 部分ビット列 A をビット列2に挿入 LAD GR1,1,GR1 ; GR1 ← ビット列2の第2語のアドレス LAD GR3,16
解答群 ア ADDA GR2,GR3 イ ADDA GR3,GR2 ウ LAD GR2,-16,GR3 エ LAD GR2,-16,GR5 オ LAD GR3,-16,GR3 カ LAD GR3,-16,GR5 キ SUBA GR2,GR3 ク SUBA GR3,GR2
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2024 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
|