平成17年 秋期 基本情報技術者 午後 問13
問13 CASL次のアセンブラプログラムの説明及びプログラムを読んで,設問1〜3に答えよ。 〔プログラムの説明〕 1語の中から指定されたビットパターンを検索する副プログラム BPSRH である。 (1) 主プログラムは,パラメタ領域の先頭番地を GR1 に設定して,BPSRH を呼ぶ。 パラメタの形式は次のとおりである。
(2) BPSRH は,検索対象語の上位ビットからビットパターンと照合し, 最初に一致した部分の最上位のビット番号を GR0 に設定して主プログラムに戻る。 一致した部分がない場合は,−1 を GR0 に設定して主プログラムに戻る。 次の例では,GR0には,一致した部分の最上位のビット番号 12 が設定される。
(3) 副プログラムから戻るとき,汎用レジスタ GR1 〜 GR7 の内容は元に戻す。
〔プログラム〕 (行番号) 1 BPSRH START 2 RPUSH 3 LD GR6,1,GR1 4 LAD GR7,16 5 SUBA GR7,GR6 ; GR7 ←(16 − n) 6 LD GR2,2,GR1 7 SLL GR2,0,GR7 ; ビットパターンを左詰めに 8 LAD GR4,-1 9 ; マスクパターンの生成 10 LAD GR0,-1 ; 戻り値の初期化 11 LAD GR3,0 ; 照合位置ポインタの初期化 12 LD GR5,0,GR1 13 LOOP LD GR6,GR5 ; GR6 は作業用として使用 14 AND GR6,GR4 15 CPL GR6,GR2 ; ビットパターンとの照合 16 JZE FIND 17 LAD GR3,1,GR3 ; 次の照合位置を設定 18 CPA GR3,GR7 ; 未照合部分が n ビット以上あるか? 19 JPL EXIT 20 21 JUMP LOOP 22 FIND LAD GR0,15 ; ビット番号の算出 23 SUBA GR0,GR3 24 EXIT RPOP 25 RET 26 END 設問1 プログラム中の に入れる正しい答えを, 解答群の中から選べ。
a に関する解答群 ア SLL GR4,0,GR6 イ SLL GR4,0,GR7 ウ SRA GR4,0,GR6 エ SRA GR4,0,GR7 オ SRL GR4,0,GR6 カ SRL GR4,0,GR7 b に関する解答群 ア LD GR5,1,GR2 イ SLL GR3,1 ウ SLL GR5,1 エ SRL GR3,1 オ SRL GR5,0,GR2 カ SRL GR5,0,GR3 キ SRL GR5,1
設問2 次のパラメタが渡され,ラベル FIND に制御が移ったときの, GR5 の値の 16 進表記として正しい答えを,解答群の中から選べ。
解答群 ア 000D イ 1AD6 ウ AD60 エ D000 オ D6B0 設問3 1 の連続するビットパターンに特化した検索を行う副プログラム BP1SRH を
使用して,映画館の指定席を予約する副プログラム RESERVE を作成した。
(1) 映画館の指定席は 1,024 席あり,座席番号は 0 〜 1023 である。 また,指定席は座席番号順に 16 席ごとにグループ化されている。 指定席管理表は連続する 64 語からなり,先頭の語のビット番号 15 が座席番号 0 の状態を, 末尾の語のビット番号 0 が座席番号 1023 の状態を表す。 指定席管理表の対応するビットが 1 のとき空席を,0 のとき予約済を表す。
図 指定席管理表( 64 語)の形式 (2) 主プログラムは,予約すべき席数 n( 1 ≦ n ≦ 16 )を GR1 に, 指定席管理表の開始アドレスを GR2 に設定して,RESERVE を呼ぶ。 (3) RESERVE は,指定された数の席を連続して,かつグループをまたがらないで確保する。 座席番号 0 から順に空席を探し,見つかれば“予約済”の状態にして, 確保された一番若い番号の座席番号を GR0 に設定し,主プログラムに戻る。 確保できなければ,−1 を GR0 に設定して主プログラムに戻る。 (4) RESERVE から戻るとき,汎用レジスタ GR1 〜 GR7 の内容は元に戻す。 (5) BP1SRH に与えるパラメタは,次の形式とする。
LAD GR2,#8000 SRA GR2,-1,GR6 LD GR4,GR2 〔プログラム〕 RESERVE START RPUSH LD GR6,GR1 ; n の保存 LAD GR1,PARAM ST GR6,1,GR1 ; BP1SRH 呼出しパラメタ準備 (1) ST GR2,TBLADD ; 指定席管理表の開始アドレス保存 LAD GR4,64,GR2 LAD GR0,-1 ; 戻り値の初期化 LOOP CPL GR2,GR4 ; 検索終了? JZE EXIT LD GR5,0,GR2 ; 指定席管理表から1語取出し ST GR5,0,GR1 ; BP1SRH 呼出しパラメタ準備 (2) CALL BP1SRH ; 1語中の空席を検索 CPA GR0,=-1 JNZ FIND LAD GR2,1,GR2 ; 次の語を検索へ JUMP LOOP FIND LAD GR3,15 SUBA GR3,GR0 ; GR3 ←(15 − GR0) LAD GR7,#8000 SRA GR7,-1,GR6 XOR GR7,=#FFFF ; GR7 ← 1110000111111111(GR0=12,n=4 の場合) AND GR5,GR7 ; 予約済に設定 ST GR5,0,GR2 SUBL GR2,TBLADD ; 座席番号の算出 ADDA GR2,GR3 LD GR0,GR2 EXIT RPOP RET TBLADD DS 1 PARAM DS 2 ; BP1SRH 呼出し用パラメタ領域 END
c に関する解答群 ア AND GR5,GR3 イ AND GR5,GR7 ウ OR GR5,GR3 エ OR GR5,GR7 オ SRA GR7,0,GR3 カ SRL GR7,0,GR3 d に関する解答群 ア SLL GR2,1 イ SLL GR2,2 ウ SLL GR2,4 エ SLL GR3,1 オ SLL GR3,2 カ SLL GR3,4
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2024 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
|