2010-04-11 11 views
5

C'è un pericolo nell'uso del registro $gp per memorizzare un valore? Immagino che la mia domanda sia qual è la vera funzionalità di $gp e che sia invocata dietro le quinte in qualche modo così che se dovessi usarlo, le cose potrebbero andare molto male?

risposta

5

Bene, $ gp indica l'area globale. Convention indica che è necessario memorizzarlo quando si scrive una funzione (vedere .cprestore).

Se avete bisogno di usarlo (onestamente, non posso capire perché), ricordate queste cose:

1) Conservare sempre nel salvati Registrati Area del tuo stack.

2) Caricare sempre quel valore in $ gp quando si distrugge lo stack.

3) Non utilizzarlo. (non accedere allo scope globale )

Inoltre, non sono sicuro, ma si può dimenticare il codice PIC.

+1

Grazie per il consiglio! – Hristo