标签: assembly stack cpu-registers machine-code stackframe
我想知道在堆栈框架中推送函数的返回值是否有意义。
我知道返回值主要存储在寄存器中(ecc用于gcc),但是它仅用于性能吗?
谢谢!
答案 0 :(得分:9)
这是有道理的,但必须手动插入(而不是简单推送)。它的'space'应该由调用者'分配'(它必须在调用函数之前减少sp),因为当你从函数返回时 - 返回地址必须位于栈的顶部,所以返回值应该是在返回地址下面。 [与在堆栈上传递参数的原理相同]