東京理科大学 infoserv[更新日]2001.11.05


問13

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

〔プログラムの説明〕

指定された範囲のメモリの内容を,16 進数として出力する副プログラムである。

(1) 主プログラムは範囲の先頭アドレスを GR1 に,範囲の終端アドレスを GR2 に設定し,副プログラム HEXDUMP を呼ぶ。

(2) 副プログラム HEXDUMP によって出力されるレコードは,次の形式である。

(3) 副プログラム HEXDUMP は,別の副プログラム HEXCNV を使用する。 HEXCNV は,GR5 に格納された 1 語の内容を 4 けたの 16 進数字列に変換し, GR4 が指す出力領域に格納する。

〔プログラム〕


    HEXDUMP START
            RPUSH

    LP1     LAD    GR4,OUTBUF     ; 出力ポインタの初期化
            LAD    GR3,16         ; 行内語数カウンタの初期化
            LD     GR5,GR1
            CALL   HEXCNV         ; アドレスの 16 進変換
    LP2     LD     GR5,=' '
            ST     GR5,0,GR4
            LAD    GR4,1,GR4
            LD     GR5,0,GR1
            CALL   HEXCNV         ; 1 語分の 16 進変換
            LAD    GR1,1,GR1
            CPL    GR1,GR2
             
            SUBA   GR3,=1
            JNZ    LP2            ; 1 行分(16 語)終了?
            OUT    OUTBUF,OUTLEN
            JUMP   LP1
    FIN     LAD    GR5,OUTBUF
            
            ST     GR4,LENG
            OUT    OUTBUF,LENG
            RPOP
            RET
    OUTBUF  DS     84
    OUTLEN  DC     84
    LENG    DS     1
            END
    HEXCNV  START
            LAD    GR6,0          ; シフト量を 0 に初期設定
    LP      LD     GR7,GR5
            SLL    GR7,0,GR6      ; 変換対象を上位 4 ビットに設定
           

            LD     GR7,CTABLE,GR7  
            ST     GR7,0,GR4
            LAD    GR4,1,GR4
            LAD    GR6,4,GR6
            CPA    GR6,=16        ; 1 語分の 16 進変換完了?
            JMI    LP
            RET
    CTABLE  DC     '0123456789ABCDEF'
            END

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

a に関する解答群

ア JMI FIN    イ JMI LP1    ウ JPL FIN

エ JPL LP1    オ JZE FIN    カ JZE LP1

b に関する解答群

ア ADDL GR4,GR5    イ LAD GR4,84,GR5    ウ LD GR4,84,GR5

エ SUBL GR4,GR5

c に関する解答群

ア AND GR7,=#000F    イ AND GR7,=#F000    ウ OR GR7,=#000F

エ OR GR7,=#F000    オ SRL GR7,12    カ SRL GR7,13

設問2  パラメタ領域に範囲の先頭アドレスと終端アドレスを格納し, パラメタ領域の先頭アドレスを GR1 に設定して呼び出すように HEXDUMP を 変更することにした。プログラム中の α の位置に挿入すべき命令列として 正しい答えを,解答群の中から選べ。

解答群

ア LD GR1,0,GR1    イ LD GR1,1,GR1     ウ LD GR2,1,GR1
LD GR2,1,GR1    LD GR2,2,GR1 LD GR1,0,GR1

エ LD GR2,2,GR1 
LD GR1,1,GR1 

設問3  プログラム中の β を次の命令列で置き換えることにした。 変更前と同じ結果を得るために命令列中の に入れる正しい答えを,解答群の中から選べ。

        CPA    GR7,=9
        JPL    AF
        LAD    GR7,#0030,GR7   ; 数字 0 の文字コードを加算
        JUMP   CONT
AF       
CONT    ST     GR7,0,GR4

解答群

ア LAD GR7,#0031,GR7    イ LAD GR7,#0037,GR7

ウ LAD GR7,#0038,GR7    エ LAD GR7,#0039,GR7

オ LAD GR7,#0041,GR7


東京理科大学 infoserv 戻る