# 参数传递 - 前 6 个整型/指针类型的参数使用寄存器 | 参数 1 | 参数 2 | 参数 3 | 参数 4 | 参数 5 | 参数 6 | | ---- | ---- | ---- | ---- | ---- | ---- | | RDI | RSI | RDX | RCX | R8 | R10 | - 多余参数调用者入栈(从右到左) - 浮点数参数使用  XMM0-7 寄存器传递 # 返回值 - 小于 64 bits 存储在 RAX - 小于 128 bits 存储在 RAX 和 RDX - 浮点数类似地使用 XMM0 和 XMM1 # 寄存器保存 - 如果 callee 需要使用 RBX, RSP, RBP, R12–R15,则由 callee 保存,返回给 caller 之前需要恢复原始值。 - 其他的寄存器则由 caller 负责保存(如果 caller 想要保留寄存器里的值) # Refs - [博客园: Windows/Linux x64汇编函数调用约定](https://www.cnblogs.com/shines77/p/3788514.html) - [Wiki: x86 calling conventions](https://en.wikipedia.org/wiki/X86_calling_conventions#System_V_AMD64_ABI)