2010-04-11 135 views
5

使用$gp寄存器存儲值有危險嗎?我想我的問題是$gp的真實功能是什麼,它是以某種方式在幕後調用的,所以如果我使用它,事情可能會非常錯誤?

回答

5

那麼,$ gp寄存器指向全局區域。 Convention表示在編寫函數時應將其存儲(請參閱.cprestore)。

如果你需要使用它(老實說,無法看到爲什麼),remeber這些東西:

1)始終將其存儲在你的棧的保存 寄存器區。

2)銷燬堆棧時,始終將該值加載到$ gp 01​​中。

3)不要使用它。 (即不訪問全球範圍 )

此外,我不確定,但你可以忘記PIC代碼。

+1

感謝您的諮詢! – Hristo 2010-04-11 21:47:43