ISA et assembleur
Quelle description de l'ABI (interface binaire d'application) est correcte ?
- AUn contrat au niveau du code source définissant le nom des fonctions et le type de leurs arguments
- BUn contrat définissant uniquement les types d'instructions du CPU et l'agencement de leurs bits
- CUn contrat au niveau du langage machine permettant de lier des programmes entre eux, couvrant la convention d'appel, la taille et l'alignement des types de données, etc.
Afficher la réponse et l'explication
Réponse : C. Un contrat au niveau du langage machine permettant de lier des programmes entre eux, couvrant la convention d'appel, la taille et l'alignement des types de données, etc.
L'ABI est un contrat au niveau du langage machine permettant à des programmes et bibliothèques compilés de fonctionner ensemble ; il comprend la convention d'appel, la taille de int, long et des pointeurs, l'alignement des structures, la manière d'invoquer les appels système, etc. L'API définit l'usage des fonctions au niveau du code source ; même avec la même API, si l'ABI diffère, une bibliothèque ne peut être utilisée sans recompilation. Pour une même ISA RISC-V, l'ABI peut différer selon l'OS ou l'usage.