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

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

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

〔プログラムの説明〕

 2語の中にあるビット列を結合してレジスタに設定する副プログラム COMBINE と, レジスタ中のビット列を分割して2語に格納する副プログラム DIVIDE である。

(1) 図1にCOMBINE と DIVIDE のデータ形式と結果を示す。 ただし, m n ≦ 16である。

図1 COMBINEとDIVIDEのデータ形式と結果

(2) COMBINE は,GR1 〜 GR4 にそれぞれ次の内容が設定されて主プログラムから呼ばれる。

GR1:C1 のアドレス

GR2:C1 のビット列の長さ( m

GR3:C2 のアドレス

GR4:C2 のビット列の長さ( n

(3) COMBINE は,結合した m n ビットを GR0 に左詰めで設定し, 残りのビットには0を設定する。

(4) DIVIDE は,GR0 〜 GR4 にそれぞれ次の内容が設定されて主プログラムから呼ばれる。

GR0:分割するビット列

GR1:D1 のアドレス

GR2:D1 に格納するビット列の長さ( m

GR3:D2 のアドレス

GR4:D2 に格納するビット列の長さ( n

(5) DIVIDE は,D1 には m ビットを,D2 には n ビットを それぞれ左詰めで格納し,残りのビットには0を格納する。

(6) COMBINE 及び DIVIDE から戻るとき,汎用レジスタ GR1 〜 GR7 の内容は元に戻す。

〔プログラム1〕

COMBINE  START
         RPUSH
         LD    GR0,0,GR1
         LD    GR5,=16
         SUBL  GR5,GR2        ; 16− m
            ; 左側 m ビット以外のビットを 0 にする。
         SLL   GR0,0,GR5      ;  ”
;
         LD    GR6,0,GR3
         LD    GR7,=16
         SUBL  GR7,GR4        ; 16− n
         SRL   GR6,0,GR7
         SUBL  GR5,GR4        ; 16− m− n
         
         OR    GR0,GR6
         RPOP
         RET
         END

〔プログラム2〕

DIVIDE   START
         RPUSH
         LD    GR5,GR0
         LD    GR6,=16
         SUBL  GR6,GR2        ; 16− m
         SRL   GR0,0,GR6
         SLL   GR0,0,GR6
         ST    GR0,0,GR1  ←α
;
         SUBL  GR6,GR4        ; 16− m− n
         
         LD    GR6,=16
         SUBL  GR6,GR4        ; 16− n
         SLL   GR5,0,GR6
         ST    GR5,0,GR3  ←β 
         RPOP
         RET
         END

設問1 プログラム1及びプログラム2中の に入れる正しい答えを,解答群の中から選べ。

解答群

ア SLL  GR5,0,GR6     イ SLL  GR6,0,GR5

ウ SRL  GR0,0,GR5     エ SRL  GR0,0,GR6

オ SRL  GR5,0,GR6     カ SRL  GR6,0,GR5

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

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

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

基本情報技術者試験


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

DIVIDE において,データを格納しない部分は元の内容を保持したままとするためには, プログラム2 中のαβの部分を次のように変更する必要がある。 図2に変更後のデータ形式と結果を示す。


   図2 変更後のデータ形式と結果

処置 変更内容
αを置換
   LD    GR7,=#FFFF
   SRL   GR7,0,GR2
    ; 元のデータを取り出す。
   OR    GR0,GR7
   ST    GR0,0,GR1
βを置換
   LD    GR7,=#FFFF
   SRL   GR7,0,GR4
   AND   GR7,0,GR3
    ; データを結合する。
   ST    GR5,0,GR3

解答群

ア AND  GR6,0,GR1     イ AND  GR6,0,GR2     ウ AND  GR7,0,GR1

エ AND  GR7,0,GR2     オ OR   GR5,GR6      カ OR   GR5,GR7

キ OR   GR7,GR5      ク OR   GR7,GR6

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

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


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