平成7年度 秋期 第二種 午後 問10

                        [更新日]1994.10.25
問10 次のアセンブラプログラムの説明及びプログラムを読んで、設問に答えよ。 [プログラムの説明]  主プログラムから与えられた個人情報テーブルを編集して出力する副プログ ラムRCDOUTがある。(1) 主プログラムは、GR1に個人情報テーブルの先頭番値 を格納して副プログラムRCDOUTを呼ぶ。 (2) 個人情報テーブルは1件以上の個人レコードからなる。最後の個人レコー ドの次の1語の内容は#0000である。 (3) 個人レコードは可変長の文字列で、氏名、住所及び電話番号をコンマ(,) で区切ったものである。氏名、住所及び電話番号にはコンマは含まれず、 いずれも省略されることはない。 (4) 個人レコードの最後は必ず制御文字(#000A)で終る。 (5) 氏名の長さは19文字以内、住所の長さは39文字以内、電話番号の19文字 以内である。 (6) RCDOUTは、個人レコード1件ごとに、氏名を1けた目から、住所を21けた 目から、電話番号を61けた目から出力する。 例  個人情報テーブル: ┌─────────────────────────────────────────┐ │Ichiro Toda,Chiyoda−ku…1−1,03−5555−1234| : └─────────────────────────────────────────┘    ┌───────────────────────────────────────────────────────┐ 続き→:Jiro Azuma,Minato−ku…3−5,03−3333−9876| … 0423−77−6666|■│    └───────────────────────────────────────────────────────┘     注 |は制御文字(#000A)、■はテーブルの最後(#0000)を示す。  出力イメージ:  ┌1けた目       ┌21けた目         ┌61けた目  ↓           ↓              ↓ ┌───────────────────────────────────────┐ │Ichiro Toda Chiyoda−ku…1−1 03−5555−1234│ │Jiro Azuma  Minato−ku…3−5  03−3333−9876│ │      :         :               :      │ │                                       | [プログラム] RCDOUT START             ; LOOP   CALL BUFCLR       ;出力エリアのクリア        [    a    ]       ;出力エリアのアドレスをGR2へ        LEA  GR3,1        ;出力位置テーブルのポインタ MXTCHR LD   GR0,0,GR1    ;        LEA  GR1,1,GR1    ;        CPL  GR0,EOF      ;文字列の最後?        JZE  RETURN       ;        CPL  GR0,NL       ;行の最後?        JZE  OUTPUT       ;        CPL  GR0,COMMA    ;区切り文字?        JZE  NXTCLM       ;        [    b    ]       ;        LEA  GR2,1,GR2    ;        JMP  NXTCHR       ; NXTCLM [    c    ]       ;        LEA  GR3,1,GR3    ;        JMP  NXTCHR       ; OUTPUT OUT  OUTBUF,OUTLNG;        JMP  LOOP         ; RETURN RET               ;                          ; BUFCLR LEA  GR2,0        ;        LD   GR3,SPACE    ; LOOP2  [    d    ]       ;        LEA  GR2,1,GR2    ;        CPA  GR2,OUTLNG   ;        JMI  LOOP2        ;        RET               ; ; OUTLNG DC   80           ; OUTBUF DS   20           ;┐ ADDR   DS   40           ;│出力エリア TEL    DS   20           ;┘ CLMTBL DC   OUTBUF       ;┐        DC   ADDR         ;│出力位置テーブル        DC   TEL          ;┘ EOF    DC   #0000        ; NL     DC   #000A        ; COMMA  DC   ’,’          ; SPACE  DC   ’ ’          ;        END               ; 設問 プログラム中の[ ]に入れる正しい答えを、解答群の中から選べ。  a、cに関する解答群 ア LD GR2,CLMTBL イ LD GR2,CLMTBL,GR1 ウ LD GR2,CLMTBL,GR3 エ LD GR2,OUTBUF オ LD GR2,OUTBUF,GR1 カ LD GR2,OUTBUF,GR3 キ LEA GR2,CLMTBL,GR1 ク LEA GR2,CLMTBL,GR3 ケ LEA GR2,OUTBUF,GR1 コ LEA GR2,OUTBUF,GR3  b、d関する解答群 ア ST GR0,0,GR1 イ ST GR0,0,GR2 ウ ST GR0,0,GR3 エ ST GR0,OUTBUF,GR1 オ ST GR0,OUTBUF,GR2 カ ST GR0,OUTBUF,GR3 キ ST GR3,CLMTBL,GR1 ク ST GR3,CLMTBL,GR2 ケ ST GR3,OUTBUF,GR1 コ ST GR3,OUTBUF,GR2