ISA et assembleur

Quelle est la différence correcte entre RISC-V et x86 concernant le mécanisme de branchement conditionnel ?

  1. ARISC-V branche selon des indicateurs, et en x86 l'instruction de branchement compare directement deux registres
  2. BAucun des deux n'a d'instruction de branchement conditionnel ; la destination est déterminée par une table
  3. CEn RISC-V, l'instruction de branchement compare directement deux registres ; en x86, le branchement consulte les indicateurs positionnés par une instruction de comparaison
Afficher la réponse et l'explication

Réponse : C. En RISC-V, l'instruction de branchement compare directement deux registres ; en x86, le branchement consulte les indicateurs positionnés par une instruction de comparaison

En x86, « cmp eax, ebx » compare et positionne des indicateurs (codes de condition) comme zéro ou retenue, puis l'instruction suivante « je » ou « jl » branche selon ces indicateurs. RISC-V n'a pas d'indicateurs ; l'instruction de branchement compare elle-même deux registres, comme « beq a0, a1, L » ou « blt a0, a1, L ». L'absence d'état implicite comme les indicateurs facilite le suivi des dépendances lors du réordonnancement ou de l'exécution simultanée des instructions.

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

Autres questions sur ISA et assembleur

  1. Quel est le fonctionnement correct de l'instruction RISC-V « slt t0, a0, a1 » ?
  2. Une fois l'exécution du code RISC-V ci-dessus terminée, quelle est la valeur de t0 ?
  3. 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 ?
  4. Quel est le fonctionnement correct de l'instruction RISC-V « jal ra, func » ?
  5. En quelle instruction la pseudo-instruction RISC-V « ret » est-elle réellement exécutée ?