HOME»基本情報技術者試験掲示板»平成29年度春 アセンブラ
投稿する
平成29年度春 アセンブラ [2021]
岳さんさん(No.1)
設問3でGR3に乗算結果を格納すると書いてあるのですが、どの行で格納しているんですか?
2019.10.17 19:18
てきとーさん(No.2)
GR3に結果を格納するのではなく、GR3に設定された先頭アドレスから連続4語に格納します。
例えばGR3に#8000が設定されていれば、乗算結果は
適当な値でトレースしてみるとわかりやすいですよ。
プログラム1の説明から
(2)副プログラム ADD64 は,GR1 に設定されたアドレスから始まる連続した4語の領域に,加算の結果を格納する。
とありますので、CALL ADD64を実行した後はGR1の示すアドレスに加算結果が入っている事になります。
プログラム2ではADD64を呼ぶ前に
LD GR1,GR3
でGR3の示すアドレスをGR1にコピーしてますね。
例えばGR3に設定されたアドレスが#8000だとするとGR1も#8000になります。
ADD64の結果はGR1に格納されるので結果は#8000に格納されることになります。
例えばGR3に#8000が設定されていれば、乗算結果は
#8000,#8001,#8002,#8003の4語に格納されます。
適当な値でトレースしてみるとわかりやすいですよ。
プログラム1の説明から
(2)副プログラム ADD64 は,GR1 に設定されたアドレスから始まる連続した4語の領域に,加算の結果を格納する。
とありますので、CALL ADD64を実行した後はGR1の示すアドレスに加算結果が入っている事になります。
プログラム2ではADD64を呼ぶ前に
LD GR1,GR3
でGR3の示すアドレスをGR1にコピーしてますね。
例えばGR3に設定されたアドレスが#8000だとするとGR1も#8000になります。
ADD64の結果はGR1に格納されるので結果は#8000に格納されることになります。
2019.10.18 06:35