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

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

次のアセンブラプログラムの説明及びプログラムを読んで,設問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
      
      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     ←β
      
      ADDA  GR0,GR3
      SRL   GR1,1
      
      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

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

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

基本情報技術者試験


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

主プログラムが GR1 に #0555 を格納して,プログラム1及びプログラム2を呼んだ場合, プログラム1の命令 α の実行回数よりもプログラム2の命令 β の実行回数の方が 回少なくなる。

プログラム1の命令 α の実行回数とプログラム2の命令 β の実行回数が 等しくなるのは,主プログラムが GR1 に格納したデータのビット番号 のビットの値が のときである。

解答群

ア 0     イ 1     ウ 5      エ 6      オ 7

カ 8     キ 9     ク 10     ケ 14     コ 15

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

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

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


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