4

関数の戻り値をスタックフレームにプッシュするのが理にかなっているのではないかと思います。

戻り値は主にレジスター(gccの場合はeax)に格納されることは知っていますが、パフォーマンスのためだけですか?

ありがとう!

4

1 に答える 1

9

それは理にかなっていますが、手動で挿入する必要があります(単純なプッシュではありません)。関数から戻るときは、戻りアドレスがスタックの最上位にある必要があるため、呼び出し元が「スペース」を「割り当てる」必要があります(関数を呼び出す前にspを減らす必要があります)。したがって、戻り値は次のようになります。差出人住所の下。[スタックで引数を渡すのと同じ原則]

于 2011-08-08T10:14:49.967 に答える