ISA et assembleur

Par combien le résultat t0 de l'instruction RISC-V « slli t0, a0, 3 » multiplie-t-il la valeur de a0 (sans tenir compte du débordement) ?

  1. A8
  2. B3
  3. C6
Afficher la réponse et l'explication

Réponse : A. 8

slli (shift left logical immediate) décale la valeur du registre vers la gauche du nombre de bits spécifié et remplit les bits de poids faible libérés par des 0. En binaire, un décalage d'un bit vers la gauche double la valeur ; un décalage de 3 bits la multiplie donc par 2 puissance 3 = 8. Étant souvent plus rapide qu'une instruction de multiplication, le compilateur remplace les multiplications par des puissances de 2 par des décalages. On l'utilise aussi souvent pour calculer l'adresse des éléments d'un tableau.

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

Autres questions sur ISA et assembleur

  1. a0 contient l'adresse de début d'un tableau a de type int (4 octets), et a1 l'indice i. Que charge le code ci-dessus dans a2 ?
  2. Quelle affirmation concernant les architectures où les instructions arithmétiques peuvent utiliser directement des valeurs en mémoire, comme l'instruction x86 « add eax, [rbx] », est correcte ?
  3. Quelle description de la manière dont les CPU x86 hautes performances actuels exécutent en interne les instructions complexes est correcte ?
  4. Quelles instructions l'extension M de RISC-V ajoute-t-elle au jeu d'instructions entières de base ?
  5. Quel est le principal objectif de l'extension C (instructions compressées) de RISC-V ?