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已经死了几个星期了。 –