この質問を見ましたが、答えが見つかりませんでした..
では、 1 回または 2 回使用する代わりに、add esp, 4またはを使用することを好むのはなぜでしょうか。違い(パフォーマンス、安全性など)はまったくありますか、それとも個人的な選択の問題ですか?add esp, 8pop
この質問を見ましたが、答えが見つかりませんでした..
では、 1 回または 2 回使用する代わりに、add esp, 4またはを使用することを好むのはなぜでしょうか。違い(パフォーマンス、安全性など)はまったくありますか、それとも個人的な選択の問題ですか?add esp, 8pop
popスタックadd esp, 4の一番上にあるものを以前のオペランドに保存するだけです。スタックにあるものが必要な場合は、おそらくpopよりも高速ですmov wherever, [esp]; add esp, 4が、単にスタックをクリアする必要がある場合は問題ありませんadd esp, 4。
一般に、pop命令はと同等ではありませんadd esp, N。
popスタックからデータを削除し、それをレジスタに格納するために使用されます。また、スタックがどちらの方向に成長するかにも依存しませんが、通常は問題になりません。
スタックポインタを手動で加算または減算してもesp、削除されたデータはレジスタに保持されません。スタックから削除されるデータに対して何もする必要がないと仮定すると、おそらくより効率的です。