X86与X64 汇编学习——调用汇编函数

雨点打透心脏的1/2处 2022-09-23 15:51 143阅读 0赞
  1. 本节说明函数调用相关:
  2. 函数调用必须被保留的内容:
  1. EAX 用于保存输出值,可能在返回前被修改
  2. EBX 指出全局偏移表,必须保留
  3. ECX 保证在函数中可用
  4. EDX 保证在函数中可用
  5. ESP 指向心得堆栈地址,必须保留
  6. EBP 堆栈基址指针,必须保留
  7. EDI 局部寄存器,必须保留
  8. ESI 局部寄存器,必须保留
  9. ST 在函数中可用

C函数过程调用基本模板:

  1. .section .text
  2. .type func ,@function
  3. func:
  4. pushl %ebp
  5. movl %esp,%ebp
  6. subl $12,%esp
  7. pushl %edi
  8. pushl %esi
  9. pushl %ebx
  10. <function code>
  11. popl %ebx
  12. popl %esi
  13. popl %edi
  14. movl %ebp,%esp
  15. popl %ebp
  16. ret

发表评论

表情:
评论列表 (有 0 条评论,143人围观)

还没有评论,来说两句吧...

相关阅读