我通过别写C语言函数测试如下:
例如
int proc(void)
{
int a=1;
int b=2;
int sum = add(a,b);
return sum;
}
汇编代码中:编译器通过调整%esp栈指针,为proc函数的的所有局部变量(static 变量除外)以及其他(还未搞清楚)预留出足够的空间。局部变量的压栈操作顺序最先压sum,其次b,最后a;然后是函数参数先压b,其次压a。最后开始调用add函数(call add),call指令会自动将返回地址压入堆栈,函数返回一般通过eax将返回值给调用者函数。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。