0
閱讀有關彙編的內容,部分是關於彙編中調用例程的約定(特別是Linux)。如何在彙編中傳遞超過8個浮點值的printf
據說第一8浮點參數通過xmm0
通過 - xmm15
和其他參數在寄存器rdi
,rsi
,rdx
,rcx
,r8
,r9
,和其它剩餘參數應被推動以相反的順序堆疊。
如果我有超過8個浮點參數和超過6個其他參數,按什麼順序推動它們堆棧會怎麼樣?第一個浮點值不適合8 fp。寄存器或其他參數不適合6個寄存器?
是否爲授權草案,是否可以用作參考?在標題頁上,有幾個名字是我寫的,我從來沒有聽說過。 –
@BulatM。是的,該頁面鏈接到標準文檔的官方最新版本。例如「* x86-64 psABI修訂版252可以從[這裏]下載(https://github.com/hjl-tools/x86-psABI/wiki/x86-64-psABI-r252.pdf)*」。不幸的是,文檔並不總是完全記錄編譯器依賴的所有內容,但它所說的所有內容都是準確的。我知道的唯一例外是[零/符號擴展窄整數參數爲32位](http://stackoverflow.com/questions/36706721/is-a-sign-or-zero-extension-required-when-adding -a-32位偏移到一個指針換/ 36760539#36760539)。 –
ABI文檔的副本曾經發布在http://www.x86-64.org/documentation.html上,但x86-64.org已經死了幾個星期了。 –