函数调用堆栈--读书笔记2

来源:互联网 发布:cms后台管理系统模板 编辑:程序博客网 时间:2024/05/16 23:37

1、ebp:栈底指针

      esp:栈顶指针

2、函数里面的局部变量属于指令。汇编代码访问局部变量是通过ebp指针的偏移量

3、函数调用:先压实参,然后再调用函数

形参内存00在调用函数压实参时push在栈上给形参开辟内存

  (1)main 函数栈帧上 (1)实参入栈,入到形参内存

                                             ( 2)下一条指令的地址入栈

 (2)被调函数的栈帧

                                           (1)把主调函数的栈底地址入栈,让ebp指向当前函数(被调函数)的栈底;

                                           (2)通过esp的减等操作,给被调用函数开辟栈帧;

                                           (3)把esp和ebp之间的所有栈内存初始化为0xcc

(3)栈帧的回退

                               ret出栈(1)出栈,把出栈所得的下一条指令的地址放到CPU的PC寄存器中

   (4)形参内存由主调方回退