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