平成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 に関する解答群
エ JZE ACHK オ JZE ALNUM カ JZE LP
ウ LD GR3,=0 エ LD GR3,=1 オ LD GR3,0 カ LD GR3,1
ウ LAD GR2,1,GR2 エ LAD GR2,3,GR2 オ LD GR1,GR6 カ LD GR2,GR6
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2024 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
|