MIPS $gp 寄存器

发布于 2024-08-28 15:38:35 字数 109 浏览 2 评论 0原文

使用 $gp 寄存器存储值有危险吗?我想我的问题是 $gp 的真正功能是什么?它是否以某种方式在幕后调用,以便如果我使用它,事情可能会变得非常非常错误?

Is there a danger in using the $gp register to store a value? I guess my question is what is the true functionality of $gp and is it invoked behind-the-scenes somehow so that if I were to use it, things could go very very wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

故事灯 2024-09-04 15:38:35

好吧,$gp 寄存器指向全局区域。 约定表示您应该在编写函数时存储它(请参阅.cprestore)。

如果您需要使用它(老实说,不明白为什么),请记住以下事项:

1)始终将其存储在“已保存”中
堆栈的寄存器区域。

2) 始终将该值加载到 $gp 中
当销毁堆栈时。

3) 不要使用它。 (即不访问
全球范围)

另外,我不确定,但你可以忘记 PIC 代码。

Well, $gp register points to the global area. Convention indicates that you should store it when you write a function (see .cprestore).

If you need to use it (honestly, cant see why), remeber these things:

1)Always store it in the Saved
Register Area of your stack.

2)Always load that value into the $gp
when destroying the stack.

3) Dont use it. (i.e dont access
global scope)

Also, i'm not sure, but you can forget about PIC code.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文