ISA et assembleur

Quelle propriété du registre x0 (zero) de RISC-V est correcte ?

  1. AIl vaut toujours 0 en lecture, et une écriture ne change pas sa valeur
  2. BIl contient l'adresse de retour de la fonction
  3. CIl sert d'indicateur signalant si le résultat de l'opération précédente était nul
Afficher la réponse et l'explication

Réponse : A. Il vaut toujours 0 en lecture, et une écriture ne change pas sa valeur

x0 est un registre spécial qui renvoie toujours 0, et les écritures y sont ignorées. La constante 0 étant toujours disponible, on peut copier une valeur avec « add rd, rs, x0 », charger une constante avec « addi rd, x0, 5 », ou désigner x0 comme destination pour ignorer un résultat, sans multiplier les instructions dédiées. L'adresse de retour est placée dans x1 (ra). RISC-V n'a pas d'indicateurs de résultat ; les instructions de branchement comparent directement deux registres.

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

Autres questions sur ISA et assembleur

  1. Quels sont les registres entiers à usage général de RV32I (jeu d'instructions entières de base 32 bits) de RISC-V ?
  2. Quelle relation entre langage assembleur et langage machine est correcte ?
  3. Par quelle instruction l'assembleur remplace-t-il réellement la pseudo-instruction RISC-V « nop » (ne rien faire) ?
  4. Quelle est la différence correcte entre les instructions RISC-V « add » et « addi » ?
  5. Après l'exécution du code RISC-V ci-dessus, quelle est la valeur du registre a2 ?