函数栈帧(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;

        }

  接下来我们看下,汇编代码:




   






猜你喜欢

转载自blog.csdn.net/congjichukaishi/article/details/80304016