来自:http ://en.wikipedia.org/wiki/X86_calling_conventions
push c
push b
push a
call function_name
add esp, 12 ;Stack clearing
mov x, eax
为什么我们需要显式地将 12 添加到 ESP 以清除堆栈,因为被调用的函数应该已将参数从堆栈中弹出,从而恢复堆栈指针......?
另一个问题:
从理论上讲,有可能在被调用者负责清理权的情况下实现可变参数函数(例如,如果您在寄存器中传递堆栈上的参数数量)?