東京理科大学 infoserv[更新日]2001.11.05


問9

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

〔プログラムの説明〕

副プログラム MULT は,正の整数 m と n の積(m×n)を求める。

(1) GR1 と GR2 に,それぞれ次の値が格納されて,主プログラムから渡される。

GR1 : m
GR2 : n

(2) 計算結果を GR0 に格納して,主プログラムに返す。

(3) 計算結果は,あふれないものとする。

(4) GR0 を除いて,副プログラムで使用する汎用レジスタの内容は保存される。

〔プログラム〕

(行番号)

 1  MULT   START               ;
 2         PUSH   0,GR1        ; レジスタの退避
 3         PUSH   0,GR2        ;
 4          ; 結果を初期化
 5  LOOP   SRL    GR2,1        ;
 6         JOV    ON           ;
 7         JZE    FIN          ;
 8         JUMP   SHIFT        ;
 9  ON      ;
10  SHIFT  SLL    GR1,1        ;
11         JUMP   LOOP         ;
12  FIN    POP    GR2          ; レジスタの復元
13         POP    GR1          ;
14         RET                 ;
15         END                 ;

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

解答群

ア ADDA GR0,GR1    イ ADDA GR0,GR2

ウ ADDA GR1,GR2    エ ADDA GR2,GR1

オ SUBA GR0,GR0    カ SUBA GR0,GR1

キ SUBA GR0,GR2    ク SUBA GR1,GR2

設問2  GR1 に 3,GR2 に 38 を格納して,主プログラムから 呼び出したとき,行番号 11 の JUMP 命令が実行される回数として正しい答えを, 解答群の中から選べ。

解答群

ア 4    イ 5    ウ 6    エ 7

設問3  設問 2 において,行番号 11 の JUMP 命令が 2 回目に実行されるときの GR0 の内容として正しい答えを,解答群の中から選べ。

解答群

ア 0000 0000 0000 0000    イ 0000 0000 0000 0011

ウ 0000 0000 0000 0110    エ 0000 0000 0000 1001

オ 0000 0000 0001 0010


東京理科大学 infoserv 戻る 次頁:問10