ISA et assembleur

Quelle description de l'ABI (interface binaire d'application) est correcte ?

  1. AUn contrat au niveau du code source définissant le nom des fonctions et le type de leurs arguments
  2. BUn contrat définissant uniquement les types d'instructions du CPU et l'agencement de leurs bits
  3. 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.

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

Autres questions sur ISA et assembleur

  1. En RISC-V, quelle instruction réalise généralement un appel par pointeur de fonction en C, « (*fp)(x) » ?
  2. Quelle affirmation concernant deux CPU adoptant la même architecture de jeu d'instructions (ISA) est correcte ?
  3. Quelle caractéristique d'une architecture load-store comme RISC-V est correcte ?
  4. Quelle propriété du registre x0 (zero) de RISC-V est correcte ?
  5. Quels sont les registres entiers à usage général de RV32I (jeu d'instructions entières de base 32 bits) de RISC-V ?