基本情報技術者試験の過去問と解説
[TOP] [午前分野別] [午後分野別] [キーワード索引] [令和元年秋午前] [令和元年秋午後]

平成27年 秋期 基本情報技術者 午後 問12
問12   CASL

 次のアセンブラプログラムの説明及びプログラムを読んで,設問1〜3に答えよ。

〔プログラム1の説明〕

 副プログラム BITINS は,図1に示すように,ビット列 A(長さ 16 ビット)を ビット列 B(長さ 16 ビット)の指定された位置に挿入し,ビット列 C(長さ 32 ビット)を作成する。 図1中の n( 0 ≦ n ≦ 16)は,挿入位置(先頭からのビット数)を表す。


図1 ビット列の挿入

 

(1) GRØ 〜 GR3 には,それぞれ次の内容が設定されて,主プログラムから渡される。 CRØ:ビット列 A

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 に関する解答群

ア Ø       イ 8       ウ 16       エ 32 b に関する解答群 ア SLL  GRØ,Ø,GR2       イ SLL  GRØ,Ø,GR6       ウ SRL  GRØ,Ø,GR2

エ SRL  GRØ,Ø,GR6

解答 a ←クリックすると正解が表示されます

解答 b ←クリックすると正解が表示されます

設問2 次の記述中の に入れる正しい答えを, 解答群の中から選べ。

 主プログラムから渡された n が 10 で,ビット列 A とビット列 B が図2のとき, 行番号 15 の OR 命令実行直前の GR4 の内容は であり, GR5 の内容は である。


図2 主プログラムから渡されたビット列 A とビット列 B

解答群

ア 0000 0000 0001 0111        イ 0000 0000 0001 1000

ウ 0000 0010 1001 0110        エ 0000 0011 1011 1100

オ 0101 1100 0000 0000        カ 0110 0000 0000 0000

キ 1010 0101 1000 0000        ク 1110 1111 0000 0000

解答 c ←クリックすると正解が表示されます

解答 d ←クリックすると正解が表示されます

設問3  連続する N 語を 16 × N ビットから成るビット列 Y とする。 図3に示すように,ビット列 X(長さ 16 ビット)をビット列 Y の指定された位置に挿入し, N +1語のビット列 Z を作成する副プログラム BITINSL を,副プログラム BITINS を 使って作成した。図3中の m( 0 ≦ m ≦ 16 × N )は, 挿入位置(先頭からのビット数)を表す。 プログラム2中の に入れる正しい答えを,解答群の中から選べ。


図3 N 語から成るビット列への挿入

(1) GRØ 〜 GR4 には,それぞれ次の内容が設定されて,主プログラムから渡される。

GRØ:ビット列 X

GR1:ビット列 Y が格納されている領域の先頭アドレス

GR2:m

GR3:ビット列 Z を格納する N+1語の領域の先頭アドレス

GR4:N

(2) 副プログラムから戻るとき,汎用レジスタ GR1 〜 GR7 の内容は元に戻す。

〔プログラム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
解答群 ア JMI  FIN       イ JMI  INS       ウ JPL  FIN

エ JPL  INS       オ JZE  FIN       カ JZE  INS

解答 e ←クリックすると正解が表示されます

解答 f ←クリックすると正解が表示されます


[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]