![]()
平成28年 秋期 基本情報技術者 午後 問12
問12 CASL次のアセンブラプログラムの説明及びプログラムを読んで,設問1〜3に答えよ。 〔プログラム1の説明〕 リストに対して,要素を挿入又は削除する副プログラム LPROC である。 リストの構造を図1に示す。
![]() 図 1 リストの構造 (1) リストは一つ以上の要素をもち,一つの要素は連続する2語から成る。 1語目には次の要素の先頭アドレス(図中では矢印で表す)が, 2語目にはその要素の保持する値が格納される。 要素は主記憶の 0 番地以外に配置され,最後の要素の1語目には, 次の要素がないことを表すために,0 が設定される。 (2) ROOT は1語から成り,最初の要素(要素1)の先頭アドレスが格納される。 (3) 主プログラムは,表1に示す値を各レジスタに設定して LPROC を呼ぶ。
A 要素の挿入の場合は,その要素が先頭から n 番目となる位置(要素 n の直前)に挿入される。 削除の場合は,先頭から n 番目の要素(要素 n )が消除される。 B n として,リストの現在の要素の個数 N よりも大きい値が与えられたとき, LPROC は何もせずに呼出し元に戻る。
(4) LPROC は,要素を挿入又は削除するとき,それぞれ別に用意された副プログラム EGET 又は EFREE を呼ぶ。 (5) EGET は,挿入される要素に必要な領域を記憶管理領域から割り当てるために呼び出され, 新たに割り当てられた,連続する2語から成る領域の先頭アドレスを GR2 に設定して呼出し元に返す。 (6) EFREE は,削除された要素の先頭アドレスを GR2 に設定して呼び出され, 当該要素が使用していた領域を記憶管理領域に戻す。 (7) 副プログラム EGET から戻るとき,GR2 以外の汎用レジスタの内容は元に戻す。 (8) 副プログラム EFREE から戻るとき,汎用レジスタ GR1 〜 GR7 の内容は元に戻す。 (9) 副プログラム LPROC から戻るとき,汎用レジスタ GR1 〜 GR7 の内容は元に戻す。 〔プログラム1〕 (行番号) 1 LPROC START 2 RPUSH 3 LD GR4,GR2 ; GR4 ← n 4 LP LD GR2,Ø,GR1 ; 次の要素をたどる 5 JZE FIN ; n > N か ? 6 SUBA GR4,=1 7 JZE NEXT ; 要素 n に達したか ? 8
a に関する解答群 エ LD GR1,GR2 オ LD GR1,Ø,GR2 b に関する解答群 エ ST GR2,Ø,GR2 オ ST GR4,Ø,GR1 カ ST GR4,Ø,GR2 c に関する解答群 エ LD GR4,2,GR2 オ LD GR4,GR1 カ LD GR4,GR2
![]() 図2 要素数が3個のリスト 解答群 ウ 要素3の先頭アドレス エ 0
〔プログラム2〕 MAIN START LD GRØ,=1 LD GR2,=3 ; n = 3 LD GR3,Ø LAD GR1,ROOT CALL LPROC LD GRØ,=2 CALL LPROC LD GR3,=1 CALL LPROC RET ROOT DC LIST LIST DC E3,#ØØØA ; リストの最初の要素(要素1) E1 DC E2,#ØØØB E2 DC #ØØØØ,#ØØØD ; リストの最後の要素 E3 DC E1,#ØØØC END 解答群 [←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2024 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
| |||||||||||||||||||||