ISA et assembleur
Pour construire la constante 0x12345FFF en RISC-V avec les deux instructions lui et addi, quelle combinaison est correcte ?
- Alui t0, 0x12346 suivi de addi t0, t0, -1
- Blui t0, 0x12345 suivi de addi t0, t0, 0xFFF
- Clui t0, 0x12345 suivi de addi t0, t0, -1
Afficher la réponse et l'explication
Réponse : A. lui t0, 0x12346 suivi de addi t0, t0, -1
L'immédiat de addi étant étendu en signe, lorsque les 12 bits de poids faible valent 0xFFF (bit de poids fort à 1), il est additionné comme -1. On fixe donc avec lui une partie haute supérieure d'une unité, 0x12346, et l'on ajoute -1 à 0x12346000 pour obtenir 0x12345FFF. Cette correction, qui consiste à ajouter 1 à la partie haute lorsque le bit 11 des 12 bits de poids faible vaut 1, est effectuée automatiquement par l'assembleur ou l'éditeur de liens.