1. 程式人生 > >x86_64體系cpu彙編傳參約定(Linux)

x86_64體系cpu彙編傳參約定(Linux)

可變引數函式的傳參約定:(64位Linux系統,gcc編譯64位程式)

引數:rdi rsi rdx rcx r8 r9
浮點引數:xmm0 ~ xmm7
al記錄使用的暫存器數量(不一定等於浮點引數總數量)

更多的引數出現在呼叫者母函式的棧上。
當前函式的rbp指著棧中母函式rbp值存放的位置,然後裡面(更高記憶體地址)是rsp位置,然後裡面依次就是後面的引數了。
所以多著的引數不能修改,否則可能會影響母函式變數值了,要想用可以先複製一份拷貝。