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

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

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

〔プログラムの説明〕

 副プログラム SUBS は,次に示すように指定された文字列の一部分(部分文字列と呼ぶ)を, 指定された領域に複写するプログラムである。

(1) GR1 〜 GR5 に,次の値が設定されて,主プログラムから渡される。

GR1:文字列が格納されている領域の先頭アドレス

GR2:文字列の長さ L

GR3:部分文字列の開始位置 P(0 ≦ P < L)

GR4:部分文字列の長さ Lp

GR5:部分文字列を複写する領域の先頭アドレス

ただし,部分文字列の領域と複写先の文字列の領域は重ならない。

(2) 次に示すどちらかの処理結果を GR0 に設定して主プログラムに戻る。

0  正常に終了

-1  長さ指定に誤り(P + Lp > L)

(3) 副プログラムから戻るとき,汎用レジスタ GR1 〜 GR7 の内容は元に戻す。

〔プログラム〕

(行番号)
 1  SUBS  START
 2        RPUSH
 3        LD      GR7,GR3
 4        ADDA    GR7,GR4
 5        CPA     GR2,GR7          ; 長さのチェック
 6        JMI     SETER
 7        ADDL    GR3,GR1
 8  LOOP  LD      GR4,GR4
 9        JZE     SETS
10        
11        ST      GR0,0,GR5        ; 文字を格納する
12        LAD     GR3,1,GR3
13        
14        LAD     GR5,1,GR5
15        JUMP    LOOP
16  SETER LAD     GR0,-1           ; エラーを設定する
17        JUMP    FIN
18  SETS  LAD     GR0,0            ; 正常終了を設定する
19  FIN   RPOP
20        RET
21        END

基本情報技術者試験


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

解答群

ア LAD   GR2,1,GR2    イ LAD   GR2,-1,GR2

ウ LAD   GR4,1,GR4    エ LAD   GR4,-1,GR4

オ LD   GR0,0,GR3    カ LD   GR0,0,GR4

キ LD   GR1,0,GR3    ク LD   GR1,0,GR4

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

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

基本情報技術者試験


設問2 次の記述中の に入れる正しい答えを,解答群の中から選べ。

 SUBS の仕様では,P + Lp > L の場合,長さ指定に誤りがあるとしている。 これを誤りとしないで次のとおりに変更する。

(1) 文字列の終わりまでを複写する。

(2) 複写できた部分文字列の長さを GR0 に設定する。

そのために,SUBS の処理を次のように変更する。 (1) に対応する修正として,行番号 7 にラベル GETPS を追加し, 行番号 16,17 の2行を次のように変更する。

SETER LD    GR4,GR2
     
     JUMP  GETPS

(2) に対応する修正として,行番号 7 の直後で の値を一時保存し,行番号 18 でこの値を GR0 に設定する。

c に関する解答群

ア SUBA  GR3,GR2    イ SUBA  GR4,GR2

ウ SUBA  GR4,GR3    エ SUBA  GR5,GR4

d に関する解答群

ア GR1    イ GR2    ウ GR3    エ GR4    オ GR5

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

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


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