平成7年度 秋期 第二種 午後 問14
[更新日]1995.10.25
問14 次のアセンブラプログラムの説明及び二つのプログラムを読んで、設問 1〜3に答えよ。 〔プログラムの説明〕 二つのプログラム、MULT1とMULT2は、両方とも二つの自然数mとnを受け 取り、その積m×nを求める副プログラムである。 (1) mはGR1に、nはGR2に、それぞれ格納されて主プログラムから渡される。 (2) 積m×nはGR0に格納し、主プログラムに返す。 (3) けたあふれは起きないものとする。つまり、積は10進数で32767(16進 数で7FFF)を超えないものとする。 〔プログラム1〕 (行番号) 01 MULT1 START 02 LEA GR0,0 03 LOOP ST GR2,WORK2 04 AND GR2,MASK 05 JZE OFF 06 ST GR1,WORK1 07 ADD GR0,WORK1 08 OFF SLL GR1,1 09 LD GR2,WORK2 10 SRL GR2,1 11 JNZ LOOP 12 FIN RET 13 MASK DC #0001 14 WORK1 DS 1 15 WORK2 DS 1 16 END 〔プログラム2〕 (行番号) 01 MULT2 START 02 LEA GR0,0 03 ST GR1,WORK 04 LOOP ADD GR0,WORK 05 LEA GR2,−1,GR2 06 JNZ LOOP 07 FIN RET 08 WORK DS 1 09 END 設問1 次の記述中の[ ]に入れる正しい答えを、解答群の中から 選べ。 実行される命令の個数は、nの値が小さいときは[ a ]の ほうが多いが、nの値が大きくなると[ b ]のほうが多くな る。 プログラム1において、行番号03〜11の部分のループ回数は、nの 値が2倍になると、[ c ]。 プログラム2において、行番号04〜06の部分のループ回数は、nの 値が1増えると、1回増える。
a 答
ア
b 答
イ
c 答
ア
解答群 a、bに関する解答群 ア プログラム1 イ プログラム2 cに関する解答群 ア 1回増える イ 1回減る ウ 2倍になる エ 1/2倍になる 設問2 プログラム1に関する次の記述中の[ ]に入れる正しい答えを、 解答群の中から選べ。 n=23のときと、n=24のときを比較すると、実行される命令の個数は n=[ d ]のときのほうが[ e ]個多い。 n=100のとき、行番号07のADD命令は、[ f ]回実行される。
d 答
カ
e 答
ウ
f 答
イ
解答群 ア 2 イ 3 ウ 4 エ 5 オ 6 カ 23 キ 24 ク 50 ケ 99 コ 100 設問3 プログラム2は、n>0を仮定して作られたものであり、n=0のときを考 えていない。このため、行番号04〜06の3行を次の命令に置き換えた。 [ ]に入れる正しい答えを、解答群の中から選べ。 LOOP LEA GR2,-1,GR2 [ ] ADD GR0,WORK JMP LOOP
答
ア
解答群 ア JMI FIN イ JNZ FIN ウ JPZ FIN エ JZE FIN