Qu'est-ce que Pointeur de cadre (frame pointer) ?

Registre qui pointe, sans bouger, sur la position de la pile à l'entrée de la fonction. En RISC-V, c'est s0 (fp). Il permet d'adresser les variables locales à distance fixe et facilite le suivi de la chaîne d'appels.

Nom japonais: フレームポインタ

« Pointeur de cadre (frame pointer) » apparaît dans 1 questions d'entraînement réparties sur 1 thèmes, dont ISA et assembleur.

Domaine: ISA et assembleur

S'entraîner : questions sur Pointeur de cadre (frame pointer)

Quel est l'avantage d'utiliser un pointeur de cadre (s0/fp en RISC-V) dans une fonction ?

  1. AIl évite d'utiliser un registre supplémentaire, ce qui améliore toujours les performances
  2. BMême si sp change en cours de fonction, les variables locales et arguments peuvent être désignés à distance fixe, et le débogueur peut facilement remonter la chaîne d'appels
  3. CLa zone de pile s'agrandit automatiquement et ne déborde plus
Afficher la réponse et l'explication

Réponse : B. Même si sp change en cours de fonction, les variables locales et arguments peuvent être désignés à distance fixe, et le débogueur peut facilement remonter la chaîne d'appels

Le pointeur de cadre est un registre qui reste fixé sur la position de la pile à l'entrée de la fonction. Même si sp change en cours de route, à cause d'un tableau de taille variable par exemple, les variables locales peuvent être désignées par « tant d'octets depuis fp ». De plus, en sauvegardant l'ancien fp dans chaque cadre, on peut remonter la chaîne d'appels (backtrace). Comme il occupe un registre, il est cependant souvent omis lors de l'optimisation.

« Pointeur de cadre (frame pointer) » dans les explications

Questions mentionnant « Pointeur de cadre (frame pointer) » (1)

  1. Quel est l'avantage d'utiliser un pointeur de cadre (s0/fp en RISC-V) dans une fonction ?

Termes associés

ABI (interface binaire d'application) Adressage relatif au PC Adresse de retour Architecture load-store Assembleur Cadre de pile (stack frame) Codes de condition Convention d'appel Créneau de délai de branchement (delay slot) Extension de signe

Retour au glossaire