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 |