問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 ;
解答群
ア ADDA GR0,GR1 イ ADDA GR0,GR2
ウ ADDA GR1,GR2 エ ADDA GR2,GR1
オ SUBA GR0,GR0 カ SUBA GR0,GR1
キ SUBA GR0,GR2 ク SUBA GR1,GR2
ア 4 イ 5 ウ 6 エ 7
ア 0000 0000 0000 0000 イ 0000 0000 0000 0011
ウ 0000 0000 0000 0110 エ 0000 0000 0000 1001
オ 0000 0000 0001 0010