栈桢

来源:互联网 发布:3dmax材质数据 编辑:程序博客网 时间:2024/06/05 19:53

#include<stdio.h>
#include<stdlib.h>
int Add(int x,int y)
{
int z=0;
z=x+y;
return z;
}
int main()
{
int a=0xAAAAAAAA;
int b=0XBBBBBBBB;
int ret=Add(a,b);
printf("%d\n",ret);
system("pause");
return 0;
}

任何过程调用,任何函数栈桢结构都由自己形成!


执行指令mov ebp ,esp后将esp的值赋给了ebp所以ebp和esp指向同一位置


形成add栈桢结构


执行指令mov esp,ebp后esp指向ebp所在位置;add栈桢结构被销毁

pop指令:栈顶上移

pop ebp将main:ebp放到ebp中,esp上移,ebp变为main:ebp,达到恢复main函数的栈桢结构的目的


将main:ret弹出,esp上移

返回值以寄存器eax的形式返回