zoukankan      html  css  js  c++  java
  • FUNCTION CALL STACK FRAME

    function call stack frame

    两个寄存器

    • esp 栈顶指针寄存器,指向调用栈的栈顶(始终指向,意味着栈分配到哪里了,从当前栈往高地址是已经分配了的)
    • ebp 基址指针寄存器,指向当前活动栈帧的基址

    一个function 调用会在栈上生成一个record ,称之为栈帧

    function 调用与栈活动

    • 1.将传给被调用函数的参数从右至左压栈
    • 2.将返回地址压栈,返回地址即函数调用结束后要执行的下一条指令的地址
    • 3.将当前EBP 寄存器里的值压栈
    • 4.将EBP寄存器的值设为ESP寄存器保存的值
    • 5.在栈里为当前函数局部变量分配所需的空间,表现为修改ESP寄存器的值(一般是减4的整数倍,栈分配是从高地址向低地址分配)
  • 相关阅读:
    expect
    grep
    Python函数
    Python的set
    Python字典
    Python循环
    Python条件判断
    Python列表
    Python字符串
    Python组织代码块的形式
  • 原文地址:https://www.cnblogs.com/yyrdl/p/6287559.html
Copyright © 2011-2022 走看看