基本情報技術者過去問

平成17年 午後 問9

最終更新日 2005/12/25
webmaster@tomnetwork.net

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