平成29年度春 アセンブラ
岳さんさん
(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
広告
返信投稿用フォーム
スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
広告