2010-04-11 15 views
5

Y at-il un danger à utiliser le registre $gp pour stocker une valeur? Je suppose que ma question est quelle est la vraie fonctionnalité de $gp et est-il invoqué dans les coulisses d'une manière ou d'une autre de sorte que si je devais l'utiliser, les choses pourraient aller très très mal?

Répondre

5

Eh bien, les points de registre $ gp pointent vers la zone globale. Convention indique que vous devez le stocker lorsque vous écrivez une fonction (voir .cprestore).

Si vous avez besoin de l'utiliser (honnêtement, ne peut pas voir pourquoi), Remeber ces choses:

1) Rangez toujours dans le registre Saved zone de votre pile.

2) Toujours charger cette valeur dans le fichier $ gp lors de la destruction de la pile.

3) Ne l'utilisez pas. (I.e. DonT accès portée globale)

Aussi, je ne suis pas sûr, mais vous pouvez oublier le code PIC.

+1

Merci pour le conseil! – Hristo