ISA et assembleur
Quel est l'avantage d'utiliser un pointeur de cadre (s0/fp en RISC-V) dans une fonction ?
- AIl évite d'utiliser un registre supplémentaire, ce qui améliore toujours les performances
- 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
- 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.