[更新日]1998.11.06


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

〔プログラムの説明〕

副プログラム SCORE は,与えられた正解に基づいて受験者の解答を減点法で採点し,その点数を出力する。

(1) 問題は 16 問からなり,すべての問いがそれぞれ 0 か 1 かを選択して答える形式である。

(2) 図 1 に示す形式のパラメタの先頭アドレスが GR1 に格納されて,主プログラムから渡される。

(GR1)+0

受験者の解答

+1

正解

+2

配点表のアドレス

図1 パラメタの形式

(3) 受験者の解答は,ビット 0(左端ビット)が問 1,ビット 1 が問 2,…,ビット15 が問 16 に対応している。

(4) 正解の各ビットも (3) と同様に各問に対応している。

(5) 各問に対する配点は,図 2 に示すように 16 語からなる配点表(MARKS)に格納されている。16 問の配点の合計は 100 点とする。

MARKS+0

問 1 の配点 

+1

問 2 の配点 

+2

問 3 の配点 

:    : 

+15

問 16 の配点 

図2 配点表

(6) 結果は,3 けたのゼロ抑制した 10 進数として出力する。

(7) 主プログラムに戻るとき,汎用レジスタ GR1 〜 GR3 の内容を元に戻す。

〔プログラム〕

SCORE    START              ;
         PUSH  0,GR1        ;
         PUSH  0,GR2        ;  レジスタの退避
         PUSH  0,GR3        ;
         LEA   GR0,32       ;
         ST    GR0,BUFFR0   ;  出力バッファを空白にする
         ST    GR0,BUFFR1   ;
         LEA   GR0,100      ; 満点(100点)を設定
         LD    GR3,2,GR1    ; 配点表のアドレス
         LD    GR2,0,GR1    ; 解答
         EOR   GR2,1,GR1    ; 正解と比較
MARK     JZE   PRINT        ; すべて正答又は採点終了
           ;
         SUB   GR0,0,GR3    ; 誤答の場合,減点
CORECT   LEA   GR3,1,GR3    ;
         SLL   GR2,1        ;
         JMP   MARK         ;
                            ;
; 10進数に変換して出力する
PRINT    LEA   GR3,BUFFR2   ;
CONV     LEA   GR2,0        ;
DIV10    CPA   GR0,TEN      ; 
           ;  GR0÷10
         SUB   GR0,TEN      ;    商→GR2
         LEA   GR2,1,GR2    ;    余り→GR0
         JMP   DIV10        ;
BUFSET     ;  余りを文字コードに変換し
         ST    GR0,0,GR3    ;    出力バッファに設定
         LEA   GR3,-1,GR3   ;
           ;
         JNZ   CONV         ;
         OUT   BUFFR0,BLEN  ;
         POP   GR3          ;
         POP   GR2          ;  レジスタの復元
         POP   GR1          ;
         RET                ;
TEN      DC    10           ;
CHAR0    DC    #0030        ;
BLEN     DC    3            ;
BUFFR0   DS    1            ;
BUFFR1   DS    1            ;
BUFFR2   DS    1            ;
         END                ;

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

a,b に関する解答群

ア JMI BUFSET   イ JMI CONV   ウ JMI CORECT

エ JNZ BUFSET   オ JNZ CORECT  カ JPZ BUFSET

キ JPZ CORECT   ク JZE CONV

c,d に関する解答群

ア ADD GR0,CHAR0   イ AND GR0,CHAR0   ウ LD GR0,0,GR2

エ LD GR0,0,GR3    オ LD GR0,CHAR0    カ LEA GR0,0,GR2

キ LEA GR0,0,GR3    ク SUB GR0,CHAR0


戻る 次頁:問11