X86与X64 汇编学习——调用汇编函数
本节说明函数调用相关:
函数调用必须被保留的内容:
- EAX 用于保存输出值,可能在返回前被修改
- EBX 指出全局偏移表,必须保留
- ECX 保证在函数中可用
- EDX 保证在函数中可用
- ESP 指向心得堆栈地址,必须保留
- EBP 堆栈基址指针,必须保留
- EDI 局部寄存器,必须保留
- ESI 局部寄存器,必须保留
- ST 在函数中可用
C函数过程调用基本模板:
.section .text
.type func ,@function
func:
pushl %ebp
movl %esp,%ebp
subl $12,%esp
pushl %edi
pushl %esi
pushl %ebx
<function code>
popl %ebx
popl %esi
popl %edi
movl %ebp,%esp
popl %ebp
ret
还没有评论,来说两句吧...