美文网首页
汇编代码——函数调用原理

汇编代码——函数调用原理

作者: 番薯大佬 | 来源:发表于2017-07-22 00:33 被阅读72次

    汇编代码中函数的调用过程

    • push 参数:64位 CPU 任性使用寄存吕
    • call 指令调用:将下一条指令地址入栈
    • 保护 bp 寄存器
    push bp
    
    • 将 sp 赋值给 bp
    mov bp,sp
    
    • 提升 sp 指针(sp 减去值),作为局部变量空间,即分配栈空间
    • 保存寄存器
    push bx
    push cx
    push dx
    
    • 业务逻辑:实现功能
    • 恢复寄存器
    pop dx
    pop cx
    pop bx
    
    • 恢复 sp 指针(sp 加上值)
    • sp 指向 bp
    mov sp,bp
    
    • 恢复 bp
    pop bp
    
    • ret 返回
    ret
    

    注意

    • 先 push 入栈的最后 pop 出栈
    • 栈指针sp 恢复时有两种方法
      • 重指向bp
      • 减多少值,就加回多少值

    相关文章

      网友评论

          本文标题:汇编代码——函数调用原理

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