ISA et assembleur

Quel est l'avantage d'utiliser l'adressage relatif au PC pour les branchements et sauts ?

  1. AQuelle que soit la distance de la cible, une seule instruction suffit toujours à l'atteindre
  2. BLa prédiction de branchement devient inutile et le pipeline ne s'arrête plus
  3. CLe programme peut être chargé à n'importe quelle adresse mémoire et s'exécuter sans modification des instructions
Afficher la réponse et l'explication

Réponse : C. Le programme peut être chargé à n'importe quelle adresse mémoire et s'exécuter sans modification des instructions

Un branchement relatif au PC représente la destination par une distance « à tant d'octets d'ici » ; si l'on décale tout le programme à une autre adresse, la distance reste la même et le programme fonctionne tel quel. C'est le fondement du code indépendant de la position (PIC) utilisé notamment pour les bibliothèques partagées. Le nombre de bits de la distance étant limité, on combine auipc et jalr pour les sauts lointains. Le besoin de prédiction de branchement est sans rapport avec le mode de représentation.

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

Autres questions sur ISA et assembleur

  1. Quelle affirmation concernant la longueur des instructions de base RISC-V et des instructions x86 est correcte ?
  2. Quel est l'avantage le plus pertinent d'une longueur d'instruction fixe ?
  3. Dans les instructions RISC-V, les champs désignant les registres (rd, rs1, rs2) font chacun 5 bits. Quelle en est la raison ?
  4. L'immédiat de l'instruction RISC-V addi est un entier signé de 12 bits. Quelle plage cet immédiat peut-il représenter ?
  5. En RISC-V, quelle est la méthode courante pour charger dans un registre une constante de 32 bits qui ne tient pas dans un immédiat de 12 bits (par exemple 0x12345678) ?