平成21年 春 問12

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
ミレアさん  
(No.1)
平成21年 春 問12のアセンブラ の問題で質問があります。
設問2のプログラム2、12行目pop GR3で積(A)のアドレスがGR3に格納されるのは何故なのでしょうか?
私の考えとしては、push GR3が1回目のCALL直後にあれば、分かるのですが、プログラム2では3行目にpush GR3があり、よくわかりません。
わかりにくくてすいません、回答よろしくお願いします
2020.08.24 17:15
メタルさん 
FE ブロンズマイスター
(No.2)
設問2の説明に、

被乗数,乗数,積は,それぞれ連続する2語に上位16ビット,下位16ビットの順に格納される。それぞれの上位語のアドレスは,GR1,GR2,GR3に設定して渡される。
とかいてあるため、プログラム2のコードには最初からGR3に積の数を記録する変数のアドレスがあり、そのアドレスをPUSHでスタックに積んで置いてるわけです。MULS実行後に書き換えられるのは、GR3のアドレスが示す変数ですから、アドレスはスタックに積んでおいて良いわけです。
2020.08.25 19:35
メタルさん 
FE ブロンズマイスター
(No.3)
それとも、PUSHの順番の事ですか?
スタックじたい後入れ先だしの為、
7行目で後で入れたGR2のアドレスを取り出した後に、12行目でGR3を取り出している為順番に問題ありません。
2020.08.25 19:44
メタルさん 
FE ブロンズマイスター
(No.4)
すいません。
スレ主様がなにが違うと思ってらしゃるのか分かりにくいので、答えにくいです。
私の回答でわからなければもう一度問題文を読んだ後、なにが違うと思ってらしゃるのか整理してから質問をお願いします。
2020.08.25 19:47
ミレアさん  
(No.5)
返信遅くなりすみません、
GR3に最初から積のアドレスが入っていたのですね、見落としていました。
ありがとうございます
2020.08.27 16:52
メタルさん 
FE ブロンズマイスター
(No.6)
はい、どういたしまして。
2020.08.27 19:04

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop