函數參數前四個整數參數將傳入寄存器,整數值在 RCX、RDX、R8 和 R9 中傳遞 (按順序從左到右)。參數五和更高在堆棧上傳遞。全部參數是將右側對齊在註冊。所以,被調用方能夠根據須要忽略寄存器中上面的位,而且只訪問所需的寄存器部分。函數
函數參數前四個浮點型和雙精度參數傳入 XMM0、XMM一、XMM二、XMM3(最大可達 4 個)中,參數五和更高在堆棧上傳遞,並忽略經常使用於該基槽的整型槽(RCX、RDX、R8 和 R9)(請參見示例),反之亦然。下面分三類狀況進行分析spa
func1(int a, int b, int c, int d, int e); // a in RCX, b in RDX, c in R8, d in R9, e pushed on stack
func2(float a, double b, float c, double d, float e); // a in XMM0, b in XMM1, c in XMM2, d in XMM3, e pushed on stack
func3(int a, double b, int c, float d); // a in RCX, b in XMM1, c in R8, d in XMM3