我相信我了解 linux x86-64 ABI 如何使用寄存器和堆栈将参数传递给函数(参见 previous ABI discussion)。我感到困惑的是,如果/哪些寄存器应该在函数调用中保留。也就是说,保证哪些寄存器不会被破坏?
最佳答案
这是来自文档 [ PDF Link 的寄存器及其使用的完整表。 ]:
r12
、r13
、r14
、r15
、rbx
、rsp
、rbp
是被调用者保存的寄存器 - 它们在“跨函数调用保留”列中有"is"。
https://stackoverflow.com/questions/18024672/