#include <stdio.h>
int add(int x, int y)
{
int z = 0;
z = x+y;
return z;
}
int main()
{
int ret = 0;
ret = add(5,7);
return 0;
}
main函数初始化,ebp指向栈底,esp指向栈顶;
创建局部变量 ret = 0;ebp向上偏移4个字节
进入add函数前,首先将传入参数(形参)进栈,并压入进入函数下一条指令地址;
进入add函数
进入add函数时进行的空间初始化,然后给z变量初始化,并进行加法运算并赋给z;
edi,esi,ebx出栈
add函数结束,进入main函数
main函数大体结束
总体栈分析