gpt4 book ai didi

assembly - 为什么 rbp 和 rsp 被称为通用寄存器?

转载 作者:行者123 更新时间:2023-12-03 11:55:39 24 4
gpt4 key购买 nike

根据 Intel 在 x64 中的说法,以下寄存器称为通用寄存器(RAX、RBX、RCX、RDX、RBP、RSI、RDI、RSP 和 R8-R15)https://software.intel.com/en-us/articles/introduction-to-x64-assembly .

在下面的文章中,写到 RBP 和 RSP 是特殊用途的寄存器(RBP 指向当前堆栈帧的底部,RSP 指向当前堆栈帧的顶部)。
https://www.recurse.com/blog/7-understanding-c-by-learning-assembly

现在我有两个相互矛盾的陈述。英特尔声明应该是可信的,但什么是正确的,为什么 RBP 和 RSP 被称为通用?

谢谢你的帮助。

最佳答案

通用意味着所有这些寄存器都可以与任何使用通用寄存器进行计算的指令一起使用,而例如,您不能对指令指针 (RIP) 或标志寄存器 (RFLAGS) 做任何您想做的事情。

其中一些寄存器被设想用于特定用途,并且通常如此。最关键的是 RSP 和 RBP。

如果您需要将它们用于自己的目的,您应该先保存它们的内容,然后再将其他东西存储在其中,并在完成后将它们恢复到原始值。

关于assembly - 为什么 rbp 和 rsp 被称为通用寄存器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36529449/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com