#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的形式返回