ISA et assembleur

Quel est le fonctionnement correct de l'instruction RISC-V « slt t0, a0, a1 » ?

  1. ADécaler a0 de a1 bits vers la gauche et placer le résultat dans t0
  2. BSi a0 est inférieur à a1, brancher à l'adresse t0
  3. CSi a0 est inférieur à a1, placer 1 dans t0, sinon 0
Afficher la réponse et l'explication

Réponse : C. Si a0 est inférieur à a1, placer 1 dans t0, sinon 0

slt (set less than) compare deux registres comme entiers signés et écrit 1 si le premier est inférieur, 0 sinon. Il existe aussi sltu, qui compare en non signé, et slti, qui compare à un immédiat. On l'utilise lorsque le résultat d'une comparaison sert de valeur, comme « x = (a < b); » en C, ou pour exprimer une condition par calcul afin de supprimer un branchement. Le décalage et le branchement relèvent d'autres instructions, comme sll et blt.

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

Autres questions sur ISA et assembleur

  1. Une fois l'exécution du code RISC-V ci-dessus terminée, quelle est la valeur de t0 ?
  2. Les instructions de branchement conditionnel RISC-V (format B) représentent la distance jusqu'à la cible par un nombre d'octets signé sur 13 bits, dont le bit de poids faible, toujours 0, n'est pas stocké dans l'instruction. Quelle est approximativement la portée directe d'une instruction de branchement ?
  3. Quel est le fonctionnement correct de l'instruction RISC-V « jal ra, func » ?
  4. En quelle instruction la pseudo-instruction RISC-V « ret » est-elle réellement exécutée ?
  5. Quel est le principal objectif de la définition d'une convention d'appel (calling convention) ?