平成27年 秋期 基本情報技術者 午後 問12
問12 CASL次のアセンブラプログラムの説明及びプログラムを読んで,設問1〜3に答えよ。 〔プログラム1の説明〕 副プログラム BITINS は,図1に示すように,ビット列 A(長さ 16 ビット)を ビット列 B(長さ 16 ビット)の指定された位置に挿入し,ビット列 C(長さ 32 ビット)を作成する。 図1中の n( 0 ≦ n ≦ 16)は,挿入位置(先頭からのビット数)を表す。
図1 ビット列の挿入 (1) GRØ 〜 GR3 には,それぞれ次の内容が設定されて,主プログラムから渡される。 GR1:ビット列 B が格納されている領域のアドレス GR2: n GR3:ビット列 C を格納する2語の領域の先頭アドレス (2) 副プログラムから戻るとき,汎用レジスタ GR1 〜 GR7 の内容は元に戻す。 〔プログラム1〕 (行番号)
1 BITINS START 2 RPUSH 3 LD GR6,= 4 SUBA GR6,GR2 ; GR6 ← シフト数 5 LD GR1,Ø,GR1 ; GR1 ← ビット列 B 6 LD GR4,GR1 ; GR4 ← ビット列 B 7 LD GR5,GRØ ; GR5 ← ビット列 A 8 SRL GR1,Ø,GR6 9 SLL GR1,Ø,GR6 ; GR1 ← ビット列 B の左 n ビット 1Ø SLL GR4,Ø,GR2 11 SRL GR4,Ø,GR2 ; GR4 ← ビット列 B の右(16-n)ビット 12 13 SLL GR5,Ø,GR6 14 OR GR1,GRØ 15 OR GR4,GR5 16 ST GR1,Ø,GR3 17 ST GR4,1,GR3 18 RPOP 19 RET 2Ø END 設問1 プログラム1中の に入れる正しい答えを, 解答群の中から選べ。 a に関する解答群 エ SRL GRØ,Ø,GR6
設問2 次の記述中の に入れる正しい答えを, 解答群の中から選べ。 主プログラムから渡された n が 10 で,ビット列 A とビット列 B が図2のとき, 行番号 15 の OR 命令実行直前の GR4 の内容は であり, GR5 の内容は である。
図2 主プログラムから渡されたビット列 A とビット列 B 解答群 ウ 0000 0010 1001 0110 エ 0000 0011 1011 1100 オ 0101 1100 0000 0000 カ 0110 0000 0000 0000 キ 1010 0101 1000 0000 ク 1110 1111 0000 0000
図3 N 語から成るビット列への挿入 (1) GRØ 〜 GR4 には,それぞれ次の内容が設定されて,主プログラムから渡される。 GR1:ビット列 Y が格納されている領域の先頭アドレス GR2:m GR3:ビット列 Z を格納する N+1語の領域の先頭アドレス GR4:N 〔プログラム2〕 BITINSL START RPUSH LOOP1 CPA GR2,=17 CALL COPY ; ビット列 Y の先頭から挿入位置の直前の SUBA GR2,=16 ; 語までを結果の領域ヘコピー JUMP LOOP1 INS CALL BITINS LAD GR1,1,GR1 LAD GR3,2,GR3 SUBA GR4,=1 LOOP2 CALL COPY ; ビット列 Y の残りの部分を JNZ LOOP2 ; 結果の領域ヘコピー FIN RPOP RET ; ビット列 Y の1語を結果の領域ヘコピー LD GR5,Ø,GR1 ST GR5,Ø,GR3 LAD GR1,1,GR1 LAD GR3,1,GR3 SUBA GR4,=1 RET END解答群 エ JPL INS オ JZE FIN カ JZE INS
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ] | ||