ISA et assembleur

Par quelle instruction l'assembleur remplace-t-il réellement la pseudo-instruction RISC-V « nop » (ne rien faire) ?

  1. Aaddi x0, x0, 0
  2. Bjal ra, 0
  3. Clw x0, 0(sp)
Afficher la réponse et l'explication

Réponse : A. addi x0, x0, 0

RISC-V n'a pas d'instruction dédiée « ne rien faire » ; nop est représenté par « addi x0, x0, 0 ». L'écriture dans x0 étant ignorée, ni les registres ni la mémoire ne changent. De même, « mv rd, rs » correspond à « addi rd, rs, 0 », « j label » à « jal x0, label » et « ret » à « jalr x0, 0(ra) ». Limiter le nombre de types d'instructions grâce à x0 est un principe de conception de RISC-V.

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

Autres questions sur ISA et assembleur

  1. Quelle est la différence correcte entre les instructions RISC-V « add » et « addi » ?
  2. Après l'exécution du code RISC-V ci-dessus, quelle est la valeur du registre a2 ?
  3. Quel est le fonctionnement correct de l'instruction RISC-V « lw t0, 8(sp) » ?
  4. Dans l'instruction de branchement conditionnel RISC-V « beq a0, a1, label », comment l'adresse de la cible label est-elle représentée ?
  5. Quel est l'avantage d'utiliser l'adressage relatif au PC pour les branchements et sauts ?