![]()
平成25年 秋期 基本情報技術者 午後 問12
問12 CASL問12 次のアセンブラプログラムの説明及びプログラムを読んで,設問1〜3に答えよ。 〔プログラム1,2の説明〕 図1のように,主プログラムから数字列として渡された 100 分未満の時間を数値の秒に 変換する副プログラム TOSEC と,その逆変換を行う副プログラム TOTIME である。
![]() 図1 数学列の時間と数値の秒との変換 m1 m2 は分,s1 s2 は秒を表す。 分は 0 〜 99 ,秒は 0 〜 59 の値とする。 (1) 副プログラム TOSEC は,主プログラムから数字列として渡された時間を, 数値の秒に変換して主プログラムに返す。 時間が格納されている領域の先頭アドレスは GR1 に設定されて,主プログラムから渡される。 秒は GR0 に設定する。 (2) 副プログラム TOTIME は,主プログラムから渡された数値の秒を,数字列の時間に 変換して主プログラムに返す。 秒は GR0 に,結果の数字列の時間を格納する領域の先頭アドレスは GR1 に設定されて, 主プログラムから渡される。 (3) 副プログラムから戻るとき,汎用レジスタ GR1 〜 GR7 の内容は元に戻す。 〔プログラム1〕 (行番号) 1 TOSEC START 2 RPUSH 3 LD GR5,=0 4 LD GR2,=4 ; ループ回数 5 LAD GR3,VALUE1 6 LOOP1 LD GR0,0,GR1 ; GR0 ←時間の1桁 7 AND GR0,=#000F 8 ADDA GR0,GR5 9 SUBA GR2,=1 10 JZE FIN 11 LD GR4,0,GR3 ; GR4 ←掛ける値 12 LD GR5,=0 13 LOOP2 SRL GR4,1 ; GR0×GR4 14 JOV INCR 15 〔プログラム2〕 (行番号) 1 TOTIME START 2 RPUSH 3 LD GR2,=3 ; ループ回数 4 LAD GR3,VALUE2 5 L00P3 LD GR4,0,GR3 ; GR4 ←割る値 6 LD GR5,=0 7 LOOP4 CPA GR0,GR4 ; GR0÷GR4 8 JMI NEXT 9 ADDA GR5,=1 10 SUBA GR0,GR4 11 JUMP LOOP4 12 NEXT OR
設問1 プログラム1,2中の a に関する解答群 オ GR4 カ GR5
設問2 次の記述中の ![]()
プログラム1を1回呼び出したとき,行番号 19 の ADDA 命令は
プログラム2に渡された秒が 10 進数で 274 であるとき,
行番号 10 の SUBA 命令は 解答群 オ 19 カ 272 キ 274
設問3 1チーム4名の選手の 10 km 走のタイムの平均値を求めて 出力する副プログラム AVERAGE を作成した。プログラム3中の ![]() (1) 主プログラムから,図2に示すデータが格納されている領域の先頭アドレスが GR1 に 設定されて渡される。4名の選手のタイムは図1に示す数字列の時間の形式で格納されている。
![]() 図2 主プログラムから渡される4名の選手のデータ (2) 平均値は,図1に示す数字列の時間の形式で出力する。1秒未満は切り捨てる。 (3) 副プログラムから戻るとき,汎用レジスタ GR1 〜 GR7 の内容は元に戻す。 〔プログラム3〕 AVERAGE START RPUSH LD GR2,=4 LD GR3,GR1 LD GR4,=0 LOOP5 LD GR1,0,GR3 CALL TOSEC 解答群 エ SLL GR4,1 オ SLL GR4,2 カ SRL GR4,1 キ SRL GR4,2
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2024 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
|