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

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

  • 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
    • 减多少值,就加回多少值

你可能感兴趣的:(汇编代码——函数调用原理)