函数栈帧(vs 编译器下)
1.什么叫函数栈帧?
函数的调用过程叫栈帧,也叫函数运行时堆栈。
2.这个过程,做了哪些事?
这个过程要为函数开辟栈空间,用于本次函数调用中临时变量的保存,现场保护,具体来说,栈空间就是函数栈帧。
3.栈帧的维护,是如何进行的?
首先要知道 ebp -- 寄存器里存放了维护这个栈的栈底指针
esp -- 寄存器里存放了维护这个栈的栈顶指针
下面我们以main函数来举例:
int Add(int x ,int y)
{
return x+y;
}
int main()
{
int a = 10;
int b = 20;
int ret = Add(a,b);
printf("%d",ret);
return 0;
}
接下来我们看下,汇编代码: