ISA et assembleur

Quel est le fonctionnement correct de l'instruction RISC-V « lw t0, 8(sp) » ?

  1. AÉcrire 4 octets de la valeur de t0 à l'adresse sp plus 8
  2. BLire 4 octets à l'adresse obtenue en ajoutant 8 à la valeur de sp et les placer dans t0
  3. CLire 4 octets à l'adresse égale à 8 fois la valeur de sp et les placer dans t0
Afficher la réponse et l'explication

Réponse : B. Lire 4 octets à l'adresse obtenue en ajoutant 8 à la valeur de sp et les placer dans t0

lw, abréviation de load word, est l'instruction qui charge 32 bits (4 octets) depuis la mémoire. « 8(sp) » désigne l'adresse obtenue en ajoutant 8 à la valeur de base sp ; ce mode d'adressage est appelé adressage relatif à une base (indirect par registre + déplacement). Il est pratique pour accéder aux variables sur la pile ou aux membres d'une structure à une distance fixe de la base. L'instruction inverse, qui écrit la valeur d'un registre en mémoire, est sw (store word).

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

Autres questions sur ISA et assembleur

  1. Dans l'instruction de branchement conditionnel RISC-V « beq a0, a1, label », comment l'adresse de la cible label est-elle représentée ?
  2. Quel est l'avantage d'utiliser l'adressage relatif au PC pour les branchements et sauts ?
  3. Quelle affirmation concernant la longueur des instructions de base RISC-V et des instructions x86 est correcte ?
  4. Quel est l'avantage le plus pertinent d'une longueur d'instruction fixe ?
  5. Dans les instructions RISC-V, les champs désignant les registres (rd, rs1, rs2) font chacun 5 bits. Quelle en est la raison ?