基本情報技術者試験の過去問と解説
[TOP] [午前分野別] [午後分野別] [キーワード索引] [令和元年秋午前] [令和元年秋午後]

平成20年 春期 基本情報技術者 午後 問09
問09   CASL

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

〔プログラムの説明〕

 文字列中の単語を切り出して,単語管理テーブルを作成する副プログラム TOKEN である。

(1) 文字列は英字,数字,空白文字(間隔文字)の0文字以上の並びで,最後にピリオドが 置かれる。単語は,1文字以上の空白文字で区切られた英数字の並びとする。

(2) 単語管理テーブルには,文字列中に現れる単語ごとに,3語からなる要素を作成し, 単語の先頭アドレス,長さ,属性の順に格納する。属性は,単語が数字だけか らなるときは0,英字が含まれるときは1とする。単語の切出しが終了したとき, 単語管理テーブルの終了を示すマークとして−1を格納する。

(2) 主プログラムは,文字列の先頭アドレスを GR1 に,単語管理テーブルの 先頭アドレスを GR2 に設定して,TOKEN を呼ぶ。

(4) 副プログラム TOKEN から戻るとき,汎用レジスタ GR1 〜 GR7 の内容は元に戻す。 副プログラム TOKEN の実行例を図に示す。

 文字列の先頭アドレスを 100 番地とし,数字は 10 進表記である。
    △は空白文字を示す。

    図 副プログラム TOKEN の実行例

〔プログラム〕

TOKEN   START
        RPUSH
        LD      GR3,=-1        ; 単語の処理中を示すフラグの初期化
;                                  0: 数字だけの単語を処理中である。
;                                  1: 英字を含む単語を処理中である。
;                                 -1: 単語の処理中ではない。
        LAD     GR1,-1,GR1
LP      LAD     GR1,1,GR1
        LD      GR4,0,GR1      ; 1文字を取り出す。
        CPL     GR4,='.'       ; 終了判定
        JZE     FIN 
        CPL     GR4,=' '
        
        CALL    SETTKN
        JUMP    LP
ALNUM   LD      GR3,GR3        ; 単語の処理中?
        JPL     LP             ;   英字を含む単語を処理中ならLPヘ
        JZE     ACHK           ;   数字だけの単語を処理中ならACHKヘ
        
        LD      GR6,GR1        ; 単語の先頭アドレスを退避
ACHK    CPL     GR4,='A'       ; 検査対象文字は数字?
        JMI     LP             ;   数字の場合,次の文字の取出しヘ
        LD      GR3,=1         ;   英字の場合
        JUMP    LP
;
FIN     CALL    SETTKN
        LD      GR5,=-1
        ST      GR5,0,GR2      ; 終了マークを格納
        RPOP
        RET
;
SETTKN  LD      GR3,GR2        ; 単語の処理中?
        JMI     FIN2           ;   処理中でなければ何もしない。
        ST      GR6,0,GR2      ; 単語の先頭アドレスを管理テーブルに格納
        LD      GR5,GR1
        SUBL    GR5,GR6        ; 単語の長さを計算
        ST      GR5,1,GR2      ; 単語の長さを格納
        ST      GR3,2,GR2      ; 単語の届性を格納
        LD      GR3,=-1        ; 単語の処理中状態を解除
         
FIN2    RET
        END

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

a に関する解答群

ア JNZ  ACHK     イ JNZ  ALNUM     ウ JNZ  LP

エ JZE  ACHK     オ JZE  ALNUM     カ JZE  LP

b に関する解答群

ア JMI  ALNUM     イ JMI  LP

ウ LD  GR3,=0     エ LD  GR3,=1

オ LD  GR3,0      カ LD  GR3,1

c に関する解答群

ア LAD  GR1,1,GR1    イ LAD  GR1,3,GR1

ウ LAD  GR2,1,GR2    エ LAD  GR2,3,GR2

オ LD  GR1,GR6     カ LD  GR2,GR6

解答 a ←クリックすると正解が表示されます

解答 b ←クリックすると正解が表示されます

解答 c ←クリックすると正解が表示されます


[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]