平成20年 秋期 基本情報技術者 午後 問13
問13 CASL次のアセンブラプログラムの説明及びプログラムを読んで,設問1,2に答えよ。 〔プログラムの説明〕 アンケートに対する n 人分の回答を集計し,集計結果をグラフで出力する 副プログラム SUMMARY である。 アンケートの質問は 16 項目からなり, "はい" 又は "いいえ" で答えると 副プログラム SUMMARY は,項目ごとに "はい" と答えた人数を集計し,棒グラフで出力する。 このグラフの表示形式を図1に示す。横軸は項目番号,縦軸は "はい" と答えた人数であり, 一つの "*" が1人を表す。□は空白文字を表す。
![]() 図1 グラフの表示形式 (1) 1人分の回答は図2のように1語に格納され,左端のビットから順に項目番号 1 〜 16 に 対応している。"はい" が1, "いいえ" が0として格納されている。
![]() 図2 1人分の回答の格納形式 (2) n 人分の回答が,図3のように連続する n 語の領域に格納され, その先頭アドレスが GR1 に設定されて主プログラムから渡される。
![]() 図3 主プログラムから渡される n 人分の回答 (3) 値 n (1≦ n ≦ 100)は GR0 に設定されて,主プログラムから渡される。 (4) 副プログラム SUMMARY は,まず,項目ごとに "はい" と答えた人数を数え, 図4に示す 16 語の領域 COUNTR に格納する。
![]() 図4 集計結果を格納するカウンタ領域 次に,この集計結果を図1で示した棒グラフで出力する。グラフは,上から順に 1行ずつ出力する(出力行数は,q1 〜 q16 の最大値に1を加えたものとなる)。 (5) 副プログラムから戻るとき,汎用レジスタ GR1 〜 GR7 の内容は元に戻す。 〔プログラム〕 (行番号) 1 SUMMARY START 2 RPUSH 3 ; カウンタ領域と出力バッファを初期化 4 LD GR2,=0 5 LD GR3,=' ' 6 LD GR4,=0 ; ループカウンタ 7 LAD GR5,PBUF ; 出力バッファのポインタ 8 LOOP1 ST GR2,COUNTR,GR4 ; カウンタ領域を初期化 9 ST GR3,0,GR5 ; 出力バッファを空白で初期化 10 ST GR3,1,GR5 11 ST GR3,2,GR5 12
設問1 プログラム中の a に関する解答群 ウ LAD GR5,3,GR5 エ LAD GR5,4,GR5 ウ JOV ON エ JPL ON ウ LAD GR2,-1,GR2 エ LAD GR2,1,GR2 ウ JZE LOOP4 エ JZE LOOP5
設問2 次の記述中の に入れる正しい答えを,
解答群の中から選べ。
主プログラムから渡される n の値は3で,3人分の回答は図5のとおりとする。
図5 3人分の回答 回実行され,
行番号 44 の ST 命令は 回実行される。
解答群 オ 17 カ 20 キ 48
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2025 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
| |||
