linux - 通过 linux x86-64 函数调用保留了哪些寄存器

我相信我了解 linux x86-64 ABI 如何使用寄存器和堆栈将参数传递给函数(参见 previous ABI discussion)。我感到困惑的是,如果/哪些寄存器应该在函数调用中保留。也就是说,保证哪些寄存器不会被破坏?

最佳答案

这是来自文档 [ PDF Link 的寄存器及其使用的完整表。 ]:

r12r13r14r15rbxrsprbp 是被调用者保存的寄存器 - 它们在“跨函数调用保留”列中有"is"。

https://stackoverflow.com/questions/18024672/

相关文章:

c - 枚举中这些#define 的目的是什么?

linux - 从 rpm 包中提取规范文件

linux - 从 FTP 服务器下载所有文件

linux - 双斜杠//in `cd//` 在 Linux 中是什么意思?

c - Linux 中的 bluetooth/bluetooth.h 位于何处?

linux - 如何在 Linux 上记录内存消耗?

linux - 我可以阅读 Linux 内核的哪些部分以获得乐趣?

linux - 进程可以拥有的每个不同 UID 的目的是什么?

linux - 解释导出 LANG、LC_CTYPE 和 LC_ALL 的效果

linux - 使用 shell 脚本将行附加到/etc/hosts 文件