ISA et assembleur

Quel est le principal objectif de la définition d'une convention d'appel (calling convention) ?

  1. AUniformiser le nommage des fonctions pour rendre les programmes plus lisibles
  2. BPermettre à des fonctions et bibliothèques compilées séparément de s'échanger correctement arguments et valeurs de retour
  3. CExiger l'autorisation de l'OS à chaque appel de fonction
Afficher la réponse et l'explication

Réponse : B. Permettre à des fonctions et bibliothèques compilées séparément de s'échanger correctement arguments et valeurs de retour

La convention d'appel définit dans quels registres placer les arguments, où renvoyer la valeur de retour, quels registres l'appelé peut écraser et comment utiliser la pile. Grâce à ce contrat, des bibliothèques produites par des compilateurs différents, ou des fonctions écrites en assembleur et en C, fonctionnent correctement ensemble. La convention d'appel est une partie importante de l'ABI (interface binaire d'application).

S'entraîner sur ce thème Retour au thème

Autres questions sur ISA et assembleur

  1. Dans la convention d'appel standard de RISC-V, quels registres servent à transmettre les arguments entiers et la valeur de retour ?
  2. Dans la convention d'appel standard de RISC-V, lors de l'appel d'une fonction à 10 arguments entiers, où sont transmis les 9e et 10e arguments ?
  3. Dans la convention d'appel RISC-V, que signifie le fait que s0 à s11 soient des registres « sauvegardés par l'appelé » (callee-saved) ?
  4. Dans la convention d'appel RISC-V, t0 à t6 sont des registres « sauvegardés par l'appelant » (caller-saved). Si une fonction veut continuer à utiliser une valeur placée dans t0 après avoir appelé une autre fonction, quelle est la démarche correcte ?
  5. Dans une fonction qui n'appelle aucune autre fonction (fonction feuille), il n'est souvent pas nécessaire de sauvegarder ra sur la pile. Quelle en est la raison ?