srl
lyszt.net couvre srl et d'autres instructions RISC-V plus en détail.
Format d'encodage
Description
srl décale les bits vers la droite, l'inverse de ce que fait sll. Les lettres signifient shift right logical (décalage logique à droite). Cette forme prend les bits de rs1, les décale vers la droite du nombre indiqué dans rs2 et stocke le résultat dans rd.
srl rd, rs1, rs2
Tout bit poussé au-delà de l'extrémité droite est perdu, et des 0 remplissent les emplacements libérés à gauche.
Ce remplissage par des zéros explique le mot logical. Un décalage à droite divise une valeur par deux, donc un décalage de 1 divise par 2 et un décalage de 3 divise par 8. Le reste est abandonné, ce qui correspond à la division entière. srl divise rapidement un nombre non signé par une puissance de deux.
Il existe deux instructions de décalage à droite, et la différence réside dans ce qui est placé dans les bits de poids fort libérés. srl y place des 0. Son homologue sra y copie le bit de signe, ce qui préserve le signe des nombres négatifs. Choisissez srl pour un motif de bits brut ou une valeur qui ne peut pas être négative. Sur une valeur signée susceptible d'être négative, srl produit un grand nombre positif, et sra est l'instruction correcte dans ce cas.
Selon le manuel RISC-V, le nombre de décalages occupe les 5 bits de poids faible du registre rs2. Ces 5 bits couvrent de 0 à 31 positions, donc les bits restants de rs2 sont ignorés. Le manuel appelle srl un décalage logique à droite, qui insère des zéros en tête.
Lorsque le nombre de décalages est une constante, utilisez la forme immédiate srli.
Exemple
li t0, -8 li t1, 1 srl t2, t0, t1 # t2 = 2147483644 (zero-filled)
