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

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

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

〔プログラムの説明〕

 連続する N 語のブロックに格納されている各語にパリティビットを設定するとともに, ブロックの直後に1語の水平パリティを設定する副プログラム SETPAR である。

(1) 各語のビット番号 15 (図の破線で囲まれた左端ビット)をパリティビットとして使用する。 パリティビットの値は偶数パリティとし,各語のビット番号 0 〜 14 中の1であるビットの 個数が奇数のときは1,偶数のときは0とする。

 水平パリティの各ビットの値も偶数パリティとし,各語の対応するビット番号中の1で あるビットの個数が奇数のときは1,偶数のときは0とする。つまり,図の網掛け部分において, 1であるビットの個数が偶数となるように,水平パリティ中のビットを設定する。


        図 パリティビットと水平パリティ

(2) 主プログラムは,ブロックの語数 N を GR1 に,ブロックの開始アドレスを GR2に設定し,ブロックの各語のパリティビットに0を格納して副プログラム SETPAR を呼ぶ。

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

〔プログラム〕
(行番号)

 1 SETPAR START
 2        RPUSH
 3        LD   GR6,GR2
 4        ADDL GR6,GR1
 5        LAD  GR4,0          ; 水平パリティ初期化
 6 LP1    LD   GR1,0,GR2      ; ブロックから1語取出し
 7        LAD  GR7,0
 8 LP2    SLL  GR1,1
 9        JZE  CONT
10        
11        XOR  GR7,=#8000     ; パリティビット調整
12        JUMP LP2
13 CONT   OR   GR7,0,GR2
14        ST   GR7,0,GR2      ; パリティビット設定
15           ; 水平パリティ調整
16        LAD  GR2,1,GR2
17        CPL  GR2,GR6        ; ブロックの終端?
18        JNZ  LP1
19        ST   GR4,0,GR6      ; 水平パリティ設定
20        RPOP
21        RET
22        END
設問1 プログラム中の に入れる正しい答えを,解答群の中から選べ。

a に関する解答群

ア JMI  CONT     イ JMI  LP2     ウ JOV  CONT
エ JOV  LP2      オ JPL  CONT     カ JPL  LP2

b に関する解答群

ア OR  GR4,0,GR6      イ OR   GR4,GR7
ウ OR  GR7,0,GR6      エ OR   GR7,GR4
オ XOR  GR4,0,GR6      力 XOR  GR4,GR7
キ XOR  GR7,0,GR6      ク XOR  GR7,GR4
解答 a ←クリックすると正解が表示されます

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

基本情報技術者試験


設問2 パリティビットの値として,各語のビット番号0〜 14 中の1であるビットの 個数が奇数のときは0を,偶数のときは1を設定するようにプログラムを変更する。 これは,プログラム中の行番号7で GR7 に設定する値を変更すれば可能である。 GR7 に設定する値として正しい答えを,解答群の中から選べ。

解答群

ア #0001      イ #7FFF      ウ #8000
エ #8001      オ #FFFE      カ #FFFF
解答 ←クリックすると正解が表示されます

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