函数
约定调用
x86的函数调用有多种,但是x64只有一种寄存器快速调用约定。前4个参数使用寄存器传递,如果参数超过4个,多于的参数就放在栈里,如栈顺序从右到左,由函数调用方平衡栈。前4个参数放的寄存器是固定的,从第一到第四分别是RCX、RDX、R8、R9。任何大于8字节或者不是1、2、4、8字节的参数必须由引用来传递。所有浮点参数的传递都是使用XMM寄存器完成的。有8个128位的XMM寄存器。它们从第一到第四个参数分别是XMM0~XMM4。
函数前4个参数虽然使用了寄存器,但是栈任然为这4个参数预留的空间(32字节),预留栈空间由函数调用者提前申请,由函数调用者负责平衡栈空间。