美文网首页
栈帧与函数调用流程(内存)---- 8086处理器

栈帧与函数调用流程(内存)---- 8086处理器

作者: xymspace | 来源:发表于2020-04-22 23:36 被阅读0次

    栈帧:一个函数执行的环境,一个栈帧代表一个函数

    栈帧结构:

    一组栈帧
    寄存器 -->SP
    局部变量
    bp以前的值 -->BP
    返回地址
    参数

    SP:指向栈顶
    BP:指向上一个函数返回值的位置

    函数调用流程(内存):

    • push 参数
    • push 函数的返回地址
    • push bp (保留bp的旧值,方便后面恢复)
    • mov bp , sp (保留sp之前的值,方便后面恢复)
    • sub sp , 空间大小 (给局部变量分配空间)
    • 保护可能要用的寄存器
    • -----执行业务逻辑------
    • 恢复寄存器的值
    • mov sp , bp (恢复sp到旧值)
    • pop bp (恢复bp到旧值)
    • ret (pop返回地址,执行下一条指令)
    • 恢复栈平衡

    相关文章

      网友评论

          本文标题:栈帧与函数调用流程(内存)---- 8086处理器

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