ISA et assembleur
Quel est l'objectif de l'exécution de « addi sp, sp, -16 » au début d'une fonction RISC-V ?
- AÉtendre la pile vers les adresses basses pour réserver une zone de travail de 16 octets
- BLibérer 16 octets sur la pile
- CSoustraire 16 de la valeur de sp et la renvoyer comme valeur de retour
Afficher la réponse et l'explication
Réponse : A. Étendre la pile vers les adresses basses pour réserver une zone de travail de 16 octets
Par convention dans de nombreuses ISA, dont RISC-V, la pile croît des adresses hautes vers les adresses basses. En diminuant sp de 16, les 16 octets entre le nouveau sp et l'ancien deviennent le cadre de pile de cette fonction, où l'on peut placer l'adresse de retour, les registres sauvegardés et les variables locales. En fin de fonction, « addi sp, sp, 16 » restaure sp, libère la zone et rétablit l'état d'avant l'appel.