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


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

〔プログラムの説明〕

二つの整数の乗算を行う副プログラム MULT である。

(1) 主プログラムは,被乗数を GR1 に,乗数を GR2 に設定して,MULT を呼ぶ。

(2) MULT は,乗算結果を GR0 に設定して,処理を終える。

(3) MULT は,主プログラムに戻るとき,汎用レジスタ GR1〜GR3 を元に戻す。

(4) 被乗数,乗数,乗算結果ともに 1 語とし,けたあふれは考慮しない。

〔プログラム〕
MULT    START
        PUSH   0,GR1
        PUSH   0,GR2
        PUSH   0,GR3
        LEA    GR0,0           ; 乗算結果の初期化
        ST     GR0,SGN
          ; 乗数の符号チェック
        JPZ    MUL
        LEA    GR3,1
        ST     GR3,SGN
        EOR    GR2,CFF
        LEA    GR2,1,GR2 
MUL     ST     GR1,SAVE        ; 被乗数の退避
        LEA    GR3,14
LP      SLL    GR2,1
        JZE    ADJ
        
        SLA    GR1,0,GR3
        ST     GR1,WORK
        ADD    GR0,WORK
        
LP2     LEA    GR3,-1,GR3
        JMP    LP
ADJ     LD     GR3,SGN         ;  
        LEA    GR3,0,GR3       ;  
        JZE    FIN             ;  乗算結果の符号調整   
          ;  
        ADD    GR0,C1          ;   
FIN     POP    GR3 
        POP    GR2 
        POP    GR1 
        RET
 
SAVE    DS     1
WORK    DS     1
SGN     DS     1
CFF     DC     #FFFF
C1      DC     1
        END
 

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

a に関する解答群

ア AND GR1,C1    イ AND GR2,C1    ウ CPA GR1,CFF

エ CPA GR2,CFF    オ LEA GR1,0,GR1    カ LEA GR2,0,GR2

b に関する解答群

ア JMI ADJ    イ JMI FIN    ウ JMI LP

エ JMI LP2    オ JPZ LP    カ JPZ LP2

c に関する解答群

ア LD GR1,CFF    イ LD GR1,SAVE    ウ LD GR2,CFF

エ LD GR2,SAVE    オ ST GR1,SAVE    カ ST GR2,SAVE

d に関する解答群

ア AND GR0,C1    イ AND GR0,CFF    ウ EOR GR0,C1

エ EOR GR0,CFF    オ OR GR0,C1    カ OR GR0,CFF


東京理科大学 infoserv 戻る 次頁:問11