64 位系统 V.

这是许多 POSIX 操作系统上 64 位应用程序的默认调用约定。

参数

前 8 个标量参数按顺序传递(按顺序)RDI,RSI,RDX,RCX,R8,R9,R10,R11。超过前八个的参数被放置在堆栈上,较早的参数更靠近堆栈的顶部。如果不再需要,调用者负责在调用后从堆栈中弹出这些值。

返回值

对于标量返回类型,返回值放在 RAX 中。返回类似结构的较大类型是通过从概念上改变函数的签名来完成的,以在参数列表的开头添加一个参数,该参数是指向放置返回值的位置的指针。

保存和 Clobbered 寄存器

RBP,RBX 和 R12-R15 由被叫方保留。所有其他寄存器可以被被调用者修改,并且调用者必须保留寄存器的值本身(例如,在栈上),如果它希望稍后使用该值。