- RAX
- 易失的
- 返回值寄存器
- RCX
- 易失的
- 函数调用的第四个参数
- RDX
- 易失的
- 函数调用的第三个参数
- RDI
- 非易失的
- 必须由被调用方保留
- 函数调用的第一个参数
- RSI
- 非易失的
- 必须由被调用方保留
- 函数调用的第二个参数
- RBX
- 非易失的
- 必须由被调用方保留
- RBP
- 非易失的
- 可用作帧指针;必须由被调用方保留
- RSP
- 非易失的
- 堆栈指针
- R8
- 函数调用的第五个参数
- R9
- 函数调用的第六个参数
- R10-R11
- 易失的
- 必须根据需要由调用方保留
- 在 syscall/sysret 指令中使用
- R10为系统调用的第四个参数
- R12-R15
- 非易失的
- 必须由被调用方保留
需要注意的是,x86和x64架构下系统调用号并不相同。系统调用可在 /usr/include/asm/unistd.h
文件中查看。