在堆栈框架中推送返回值

时间:2011-08-08 10:10:43

标签: assembly stack cpu-registers machine-code stackframe

我想知道在堆栈框架中推送函数的返回值是否有意义。

我知道返回值主要存储在寄存器中(ecc用于gcc),但是它仅用于性能吗?

谢谢!

1 个答案:

答案 0 :(得分:9)

这是有道理的,但必须手动插入(而不是简单推送)。它的'space'应该由调用者'分配'(它必须在调用函数之前减少sp),因为当你从函数返回时 - 返回地址必须位于栈的顶部,所以返回值应该是在返回地址下面。 [与在堆栈上传递参数的原理相同]