push c push b push a call function_name add esp,12 ;Stack clearing mov x,eax
为什么我们需要显式地向ESP添加12以清除堆栈,因为被调用的函数应该将参数从堆栈中取出,因此恢复堆栈指针……?
另一个问题:
从理论上讲,可以实现变量参数函数,callee负责清理权限(例如,如果在寄存器中传递堆栈中的参数数量)?
它允许变量参数之类的东西.