平成8年度 春期 第二種 午後 問10

                        [更新日]1996.06.04
問10 次のアセンブラプログラムの説明及びプログラムを読んで,設問に答えよ。 〔プログラムの説明〕 5人の採点者のつけた点数を受け取り,最高点を一つと最低点を一つ除いた三つの 点数の合計を表示する副プログラムDPOINTである。 (1) 五つの点数は,図のように連続する五つの語に入れられ,その先頭アドレスが GE1に格納されて主プログラムから渡される。 ┌─────────┐ (GR1)+0│ │ 点数1 ├─────────┤ +1│ │ 点数2 ├─────────┤ │ │ : ├─────────┤ : │ │ ├─────────┤ +4│ │ 点数5 └─────────┘ 図 五つの点数 (2) 点数は0点以上,l00点以下の整数とする。 (3) 結果は3けたで表示する。合計点が3けたに満たない場合は,先頭に空白を埋め る。 設問 プログラム中の [ ] に入れる正しい答えを,解答群の中から選べ。 a,bに関する解答群 ア JMI NOTMAX イ JMI NOTMIN ウ JNZ NOTMAX エ JNZ NOTMIN オ JPZ NOTMAX カ JPZ NOTMIN キ JZE NOTMAX ク JZE NOTMIN c,dに関する解答群 ア ADD GR2,TEN イ LEA GR2,1,GR2 ウ LEA GR2,-1,GR2 エ ST GR1,OLENG オ ST GR2,OLENG カ ST GR2,OTBUF,GR1 キ ST GR3,OTBUF ク ST GR3,OTBUF,GR1 ケ ST GR3,OTBUF,GR2 コ SUB GR2,TEN 〔プログラム〕 DPOINT START ; LD GR3,0,GR1 ; ST GR3,MAX ; ST GR3,TOTAL ; LEA GR2,4 ; ループカウンタ LOOP LEA GR1,1,GR1 ; LD GR3,0,GR1 ; CPA GR3,MIN ; 現在点と最低点を比較 [ a ] ; ST GR3,MIN ; JMP NOTMAX ; NOTMIN CPA GR3,MAX ; 現在点と最高点を比較 [ b ] ; ST GR3,MAX ; NOTMAX ADD GR3,TOTAL ; ST GR3,TOTAL ; LEA GR2,-1,GR2 ; ┬ 全点数処理済み? JNZ LOOP ; ┘ SUB GR3,MAX ; ┬ 最高点と最低点を除外 SUB GR3,MIN ; ┘ ; 合計点→10進形式文字列 LEA CR1,2 ; CONV LEA GR2,0 ; ┐ CONV1 CPA GR3,TEN ; │ JMI CONV2 ; ├ 点数÷10 [ c ] ; │ 商→GR2 SUB GR3,TEN ; │ 剰余→GR3 JMP CONV1 ; ┘ CONV2 ADD GR3,ZERO ; 数字→文字コード [ d ] ; LEA GR3,0,GR2 ; LEA GR1,-1,GR1 ; 3けた処理済み? JMP OUTPUT ; LEA GR3,0,GR3 ; 商 ≠ 0 ? JNZ CONV ; LEA GR3,SPACE ; 空白文字 CONV3 [ d ] ; LEA GR1,-1,GR1 ; JPZ CONV3 ; OUTPUT OUT OTBUF,OLENG ; RET ; TEN DC 10 ; ZERO DC '0' ; SPACE DC ' ' ; OLENG DC 3 ; OTBUF DS 3 ; MIN DS 1 ; MAX DS 1 ; TOTAL DS 1 ; END ;