LR est le lien s'inscrire utilisé pour contenir l'adresse de retour d'un appel de fonction.
SP est le pointeur de pile. La pile est généralement utilisé pour hold "automatique", les variables et le contexte/les paramètres à travers des appels de fonction. Sur le plan conceptuel que vous pouvez penser de la "pile" comme un lieu où l'on "tas" de vos données. Vous garder "l'empilage" un morceau de données sur les autres et le pointeur de pile, vous indique le "haut" de votre "pile" de données. Vous pouvez supprimer les données du "haut" de la "pile" et de le rendre plus court.
À partir du BRAS de référence de l'architecture:
SP, le Pointeur de Pile
Registre R13 est utilisé comme un pointeur à l'actif de la pile.
Dans la barre de code, la plupart des instructions ne peut pas accéder à la SP. La seule
les instructions qui peuvent accéder à la SP sont ceux qui sont conçus pour l'utilisation de la SP comme un
pointeur de pile. L'utilisation de la SP pour des fins autres que comme une pile
pointeur est obsolète. Remarque l'Utilisation de la SP pour toute autre fin que comme un
pointeur de pile est possible de casser les exigences de l'exploitation
des systèmes, des débogueurs, et d'autres systèmes logiciels, les obligeant à
dysfonctionnement.
LR, le Lien s'Inscrire
Registre R14 est utilisé pour stocker l'adresse de retour d'un sous programme. Au
d'autres fois, LR peut être utilisé à d'autres fins.
Lorsqu'un BL ou BLX instruction effectue un appel de sous-routine, LR est fixé à
la sous-routine d'adresse de retour. Pour exécuter un sous-programme de retour, copie LR
de retour pour le compteur de programme. Cela se fait habituellement dans l'un des deux
façons, après la saisie de la sous-routine avec un BL ou BLX instruction:
• De retour avec une BX LR instruction.
• Sur la sous-routine d'entrée, store LR pour
la pile avec une instruction de la forme: PUSH {,LR} et
utiliser un correspondant de l'instruction de retour: POP {PC} ...
Ce lien donne un exemple d'un trivial sous-routine.
Voici un exemple de la façon dont les registres sont sauvegardés sur la pile avant l'appel, puis a sauté en arrière pour restaurer leur contenu.