美文网首页
函数调用栈

函数调用栈

作者: yangweigbh | 来源:发表于2017-02-10 18:06 被阅读34次

    函数调用过程

    esp指向堆栈顶端,ebp指向old ebp,返回地址为ebp-4,参数为ebp-8,ebp-12。。。

    Paste_Image.png

    调用:

    1. 将调用参数压栈

    2. 将下一条指令地址压栈,作为返回地址

    3. 将ebp压栈,将ebp设置为esp

    4. 跳转到函数执行

    返回:

    1. esp 设置为 ebp,回收局部变量

    2. pop ebp:恢复ebp的值为old ebp

    3. 从栈中获得返回地址,并跳转到该位置

    不同的出栈方和参数传递顺序决定不同的调用惯例

    Paste_Image.png

    相关文章

      网友评论

          本文标题:函数调用栈

          本文链接:https://www.haomeiwen.com/subject/rlxnittx.html