Linux 64 位调用规约
调用规约是在关于程序调用和返回的约定,参考维基百科。
x86_64
| 参数 | 寄存器 | 
|---|---|
| 整数或指针(1-6) | RDI, RSI, RDX, RCX, R8, R9 | 
| 浮点数(1-8) | XMM0 - XMM7 | 
| 更多参数 | 栈(SP) | 
| 整数返回值 | RAX | 
| 浮点数返回值 | XMM0 | 
RAX 的低 32 位为 EAX;EAX 的低 16 位为 AX;AX 的高 8 位为 AH,低8位为 AL。
aarch64
| 参数 | 寄存器 | 
|---|---|
| 64位整数或指针(1-8) | X0-X7 | 
| 32位整数 | W0-W7 | 
| 单精度浮点数(1-8) | S0-S7 | 
| 双精度浮点数(1-8) | D0-D7 | 
| 更多参数 | 栈(SP) | 
| 返回值 | X0 |