En ce qui concerne les ordinateurs, un registre de la pile est un emplacement de mémoire - en général de l'unité centrale de traitement (CPU) ou un matériel de traitement relatif - qui contient l'adresse actuelle de la partie supérieure d'une région de mémoire d'ordinateur séparée appelée la pile. Le registre de pile est important parce que, sans elle, un ordinateur aurait besoin pour mettre en œuvre une méthode plus lente, plus d'erreurs de tracer le flux d'exécution d'un programme. Dans la plupart des architectures de système, le registre de pile est un registre dédié donc il n'est pas accédé accidentellement lorsque vous travaillez avec d'autres registres de mémoire. Plus rarement, un registre de la pile peut être un registre général qui est généralement accessible par un programme, mais qui n'est pas intentionnellement utilisé car son utilisation est définie par le constructeur. Quand un système informatique contient deux ou plusieurs registres de pile, ce qui signifie qu'il est potentiellement plus d'une pile, l'architecture est connue comme une machine à pile.
Au plus bas niveau de la programmation informatique, une pile est une zone de mémoire - le plus souvent dans la mémoire vive (RAM) - qui a un type bien défini de comportement. La pile peut être ajoutée à l'information dans un processus appelé pousser, ou il peut avoir des informations extraites de ce qui est appelé à éclater. Le modèle d'une pile est premier entré, dernier sorti, ce qui signifie que si plusieurs éléments d'information sont poussés dans la pile, puis le premier élément enfoncé sera le dernier à être sauté hors, tandis que le dernier élément a poussé à volonté être la première à être récupérée avec une commande pop. Un registre de pile conserve la trace de la partie supérieure de la pile, ce qui est toujours le dernier élément poussé dedans.
Lorsqu'un programme d'ordinateur est en cours d'exécution, chaque instruction qui est en cours d'exécution a une adresse de mémoire particulière où il est stocké temporairement, pour la durée du programme. Si un programme appelle une sous-routine - ou une procédure, fonction ou méthode, selon le langage de programmation - alors le programme doit sauter à l'adresse de mémoire du code de sous-programme à exécuter. L'adresse où le flux de contrôle du programme casse en branche à la sous-routine est poussé sur la pile de sorte qu'il se souvient. Lorsque le sous-programme a terminé l'exécution, le programme sait où il doit retourner dans le code principal en faisant éclater l'adresse du code à partir du haut de la pile, où le registre de pile est orientée.
Bien qu'il existe d'autres méthodes qui peuvent être utilisées pour obtenir les mêmes résultats, à l'aide d'une pile et le registre de la pile permet un concept important de la programmation connu sous le nom récursivité. Une fonction récursive est une fonction qui, au sein de son propre code, appelle lui-même. Ce processus est couramment utilisé dans les algorithmes de tri et de certaines fonctions mathématiques. Le registre de la pile est de garder une trace de toutes les dernières adresses où l'exécution est la ramification, si une fonction peut mettre en œuvre en toute sécurité récursivité en sachant que, finalement, le contrôle revient à son point d'origine. Une complication se produit si l'ensemble de la pile est pleine et pas de place dans la mémoire reste, dans ce cas, un débordement de pile se produit, cesser l'exécution du programme.