基本情報技術者過去問平成17年 午後 問9最終更新日 2005/12/25
|
Tomのネットワーク勉強ノート |
過去問 |
基本情報技術者過去問(午前・午後) |
基本情報技術者過去問 平成17年 午後 問9 |
問9 次のアセンブラプログラムの説明及びプログラムを読んで,設間1,2に答えよ。
〔プログラム1の説明〕
プログラム1(SFT1)は,マスクを右にシフトしながら1語に格納されているデ
ータの中の1であるビットの個数を数えて,GR0に設定する副プログラムである。
図1 プログラム1の処理方法
(1) 主プログラムは,GR1に対象データを格納して副プログラムを呼ぶ。
(2) 対象データの第15ビットから第0ビットまでを順にマスクと照合し,1の個数
を教えて,GR0に設定する。
(3)副プログラムから戻るとき,汎用レジスタGR1〜 GR7の内容は元に戻す。
〔プログラム1〕
SFT1 START
RPUSH
LD GR2, MASK
LAD GR0, 0
LOOP LD GR3, GR2 ← α
AND GR3, GR1
JZE SKIP
ADDA GR0, =1
SKIP SRL GR2,1
【 a 】
RPOP
RET
MASK DC #8000
END
〔プログラム2の説明〕
プログラム2(SFT2)は,プログラム1と比べて,命令の実行回数が少なくなる
ように,対象データを右にシフトしながら常に最下位ビットをマスクと照合し,1の
個数を数えて,GR0に設定する副プログラムである。
図2 プログラム2の処理方法
〔プログラム2〕
SFT2 START
RPUSH
LAD GR0, 0
LOOP LD GR3, GR1 ← β
【 b 】
ADDA GR0, GR3
SRL GR1, 1
【 a 】
RPOP
RET
END
設問1 プログラム1,プログラム2中の【 】に入れる正しい答えを,解答群の中から選べ。
aに関する解答群
ア JMI LOOP イ JNZ LOOP
ウ JUMP LOOP エ JZE LOOP
bに関する解答群
ア AND GR3, =#0001 イ OR GR3, =#0001
ウ AND GR3, =#1000 エ OR GR3, =#1000
オ AND GR3, =#FFFF カ OR GR3, =#FFFE
設問2 次の記述中の【 】に入れる正しい答えを,解答群の中から選べ。
主プログラムがGR1に#0555を格納して,プログラム1及びプログラム2を呼ん
だ場合,プログラム1の命令αの実行回数よりもプログラム2の命令βの実行回数
の方が【 c 】回少なくなる。
プログラム1の命令αの実行回数とプログラム2の命令βの実行回数が等しくな
るのは,主プログラムがGR1に格納したデータのビット番号【 d 】のビットの
値が【 e 】のときである。
解答群
ア 0 イ 1 ウ 5 エ 6 オ 7
カ 8 キ 9 ク 10 ケ 14 コ 15
Tomのネットワーク勉強ノート |
過去問 |
基本情報技術者過去問(午前・午後) |
基本情報技術者過去問 平成17年 午後 問9 |