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

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

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

〔プログラムの説明〕

(1) 副プログラム OBLONG は,各座標値が整数である 2 点 A(x1,y1), B(x2,y2)を対角の頂点とし,各辺が x 軸又は y 軸に平行な長方形の面積を 求めるプログラムである。

@ 次のパラメタの先頭アドレスが GR1 に格納されて,主プログラムから渡される。

A x1≠x2,y1≠y2 とする。

B 求めた面積は GR0 に格納して,主プログラムに返す。

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

(2) 副プログラム ABS は,OBLONG から渡された GR2 の内容をその絶対値に 置き換えるプログラムである。
 副プログラム ABS の実行によって,汎用レジスタ GR1,GR3 〜 GR7 の内容は変わらない。

(3) プログラム中の演算で,あふれは起きないものとする。

〔プログラム〕

(行番号)

 1  OBLONG  START
 2          RPUSH
 3          LD    GR2,0,GR1  ;GR3←|x1-x2|
 4          SUBA  GR2,2,GR1  ;  ”
 5          CALL  ABS        ;  ”
 6          LD    GR3,GR2    ;  ”
 7          LD    GR2,1,GR1  ;GR2←|y1-y2|
 8          SUBA  GR2,3,GR1  ;  ”
 9          CALL  ABS        ;  ”
10          LD    GR0,=0     ; 面積の初期化
11  LOOP    SRL   GR2,1
12          
13          JZE   FIN1
14           
15  ADD     ADDA  GR0,GR3
16  SHIFT   SLA   GR3,1
17          JUMP  LOOP
18  FIN1    RPOP
19          RET
20  ;
21  ABS     LD    GR0,GR2
22          JMI   MINUS
23          JUMP  FIN2
24  MINUS   LD    GR2,=0
25           
26  FIN2    RET
27          END

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

a,b に関する解答群

ア JMI ADD      イ JMI LOOP      ウ JMI SHIFT

エ JOV ADD      オ JOV LOOP      カ JOV SHIFT

キ JUMP ADD      ク JUMP LOOP      ケ JUMP SHIFT

c に関する解答群

ア ADDA GR0,GR2      イ ADDA GR2,GR0

ウ SUBA GR0,GR2      エ SUBA GR2,GR0

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

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

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

基本情報技術者試験


設問2 2 点 A と B に次の座標を与えたとき,行番号 15 の ADDA 命令は何回実行されるか。 正しい答えを,解答群の中から選べ。

A の座標:(3,6)

B の座標:(−5,17)

解答群

ア 1       イ 2       ウ 3       エ 4       オ 5

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

[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2024 情報処理試験.jp |  プライバシーポリシー・著作権・リンクお問合わせ