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

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

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

〔プログラム1の説明〕

 除算を行う副プログラム DIV である。

(1) DIV は表1に示すレジスタを介して,被除数と除数を受け取り,商と剰余を返す。 数値は全て 32 ビットの符号なし整数とし,除数は0でないものとする。

      表1 パラメタの受渡し方法

   上位語(上位 16 ビット)  下位語(下位 16 ビット)
 入力   被除数      GR1    GR2
 除数 連続する2語に,上位 16 ビット,下位 16 ビットの
 順に格納し,上位語のアドレスを GR3 に設定
 出力 商    GR1    GR2
 剰余    GR4    GR5

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

〔プログラム1〕

     DIV     START                     ; 減算を用いた 32 ビット除算
             PUSH    0,GR6
             PUSH    0,GR7
             LD      GR6,GR1
             LD      GR7,GR2
             LD      GR1,=#FFFF        ; 商の初期化
             LD      GR2,=#FFFF
     LP      LD      GR4,GR6
             LD      GR5,GR7
             ADDL    GR2,=1            ; 商のカウントアップ
             JOV     ADJ1
             JUMP    CONT
     ADJ1    
     CONT    SUBL    GR6,0,GR3
             J0V     FIN
             SUBL    GR7,1,GR3
             
             JUMP    LP
     ADJ2    SUBL    GR6,=1
             J0V     FIN
             JUMP    LP
     FIN     POP     GR7
             POP     GR6
             RET
             END

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

a に関する解答群

ア ADDL GR1,0,GR3    イ ADDL GR1,=1     ウ ADDL GR2,1,GR3

エ ADDL GR2,=1     オ ADDL GR4,0,GR3    カ ADDL GR5,1,GR3

b に関する解答群

ア JMI ADJ2     イ JMI CONT     ウ JOV ADJ2

エ JOV CONT     オ JPL ADJ2     カ JPL CONT

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

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

基本情報技術者試験


設問2 10 進表記で 0 〜 99999 の値の整数を 32 ビット符号なし整数として与えたとき, DIV を用いて 10 進数 文字列に変換する副プログラム BTOD を異なるアルゴリズムで2種類作成した。プログラム2は 10 進表記の 上位桁から求めるものであり,プログラム3は 10 進表記の下位桁から求めるものである。 プログラム2,プログラム3中の に入れる正しい答えを,解答群の中から選べ。

(1) BTOD は 32 ビット符号なし整数の上位語を GR1 に,下位語を GR2 に,変換結果を格納する領域の 先頭アドレスを GR3 に設定して呼び出される。

(2) 変換後の 10 進数文字列は5語の領域に格納される。ただし,5桁に満たない場合は上位桁に "0" が補われる。 対象数値が 16 進表記で 0000054D の場合の実行結果を,次に示す。

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

〔プログラム2〕

     BTOD    START
             RPUSH
             LD     GR6,GR3
             LAD    GR7,4,GR3
             LAD    GR3,UDAT    ; 除数の初期設定
     LP      CALL   DIV
             OR     ,='0'
             ST     ,0,GR6    ; 10 進数字1文字格納
             CPL    GR6,GR7
             JZE    FIN
             LAD    GR6,1,GR6
             LD     GR1,GR4     ; 被除数の再設定
             LD     GR2,GR5
             
             JUMP   LP
     FIN     RPOP
             RET
     UDAT    DC     0
             DC     10000
             DC     0
             DC     1000
             DC     0
             DC     100
             DC     0
             DC     10
             DC     0
             DC     1
             END

〔プログラム3〕

     BTOD   START
            RPUSH
            LAD     GR6,4,GR3
            LD      GR7,GR3
            LAD     GR3,DAT
     LP     CALL    DIV
            OR      ,='0'
            ST      ,0,GR6
            CPL     GR6,GR7
            JZE     FIN
            LAD     GR6,-1,GR6
            JUMP    LP
     FIN    RPOP
            RET
     DAT    DC     0
            DC     
            END

c,e に関する解答群

ア GR1     イ GR2     ウ GR3     エ GR4     オ GR5

d に関する解答群

ア LAD GR3,1,GR3     イ LAD GR3,2,GR3     ウ LAD GR7,1,GR7

エ LAD GR7,2,GR7     オ LD GR3,1,GR3     カ LD GR3,2,GR3

キ LD GR7,1,GR7     ク LD GR7,2,GR7

f に関する解答群

ア 1     イ 10      ウ 100     エ 1000     オ 10000
解答 c ←クリックすると正解が表示されます

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

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

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


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