MIPS $ gp注册

Hri*_*sto 7 mips

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

Tom*_*Tom 5

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

如果你需要使用它(老实说,不知道为什么),记住这些事情:

1)始终将其存储在堆栈的保存寄存器区域中.

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

3)不要使用它.(即不要访问全局范围)

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