平成22年 秋期 基本情報技術者 午後 問12
問12 CASL次のアセンブラプログラムの説明及びプログラムを読んで,設問1〜3に答えよ。 〔プログラムの説明〕 16 ビット(1語)からなるビット列のビットの並びを,図1に示すように逆転する 副プログラム REVRS である。 ![]() 図1 ビットの並びを逆転する例 (1) ビット列を格納している語のアドレスは GR1 に設定されて,主プログラムから渡される。 (2) 結果は元の領域に格納して,主プログラムに返す。 (3) 副プログラムから戻るとき,汎用レジスタ GR1 〜 GR7 の内容は元に戻す。 〔プログラム1〕
REVRS START
RPUSH
LD GR4,=0 ; 結果のビット列を初期化
LAD GR2,15 ; ループカウンタ
LD GR3,0,GR1 ; GR3 ← ビット列
LOOP SLL GR4,1 ; 結果のビット列を左シフト
SRL GR3,1 ; 元のビット列を右シフト
設問1 プログラム中の a に関する解答群 b に関する解答群 ウ SRL GR4,-1,GR2 エ SRL GR4,0,GR2
設問2 連続した n 語( n ≧ 1 )を 16 × n ビットのビット列とみなす。 副プログラム REVRS を利用して,このビット列のビットの並びを,図2に示すように逆転する 副プログラム LREVRS を作成した。 ![]() 図2 n 語のビット列のビットの並びを逆転 主プログラムから渡されるレジスタの内容は,次のとおりとする。
GR2:n
に入れる正しい答えを,
解答群の中から選べ。
〔プログラム2〕
LREVRS START
RPUSH
LD GR3,GR1
LD GR4,GR2
SUBA GR4,=1
JZE LOOP2
ADDA GR4,GR1
LOOP1 LD GR5,0,GR3 ;
LD GR6,0,GR4 ; GR3 が指す語と GR4 が指す語の内容を
ST GR5,0,GR4 ; 入れ替える
ST GR6,0,GR3 ;
LAD GR3,1,GR3 ; GR3 を次の語に位置付ける
LAD GR4,-1,GR4 ; GR4 を一つ前の語に位置付ける
CPA GR3,GR4
解答群 エ JPL LOOP1 オ JZE FIN3 カ JZE LOOP2
設問3 副プログラム REVRS を使用して,16 ビット(1語)からなるビット列中の 部分ビット列αのビットの並びを,図3に示すように逆転する副プログラム PREVRS を作成した。p,q は,それぞれ部分ビット列の直前までのビット数及び 部分ビット列のビット数を表す。 ここで,p ≧ 0,q > 1,p + q ≦ 16 とする。 ![]() 図3 部分ビット列αのビットの並びを逆転 主プログラムから渡されるレジスタの内容は,次のとおりとする。 GR2: p GR3: q
副プログラム PREVRS 中の 〔プログラム3〕
PREVRS START
RPUSH
LD GR4,0,GR1 ; ビット列を保存
CALL REVRS ; ビット列のビットの並びを逆転
LD GR5,0,GR1 ; GR5 ← 逆転したビット列
LD GR6,=16
SUBA GR6,GR3 ; GR6 ← 16 - q
SRL GR5,0,GR2 ; 逆転した部分ビット列αを右端に移動
解答群 ウ SLL GR5,0,GR6 エ SLL GR5,0,GR3
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2025 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
|
