srli
lyszt.net tratta srli e altre istruzioni RISC-V in modo più dettagliato.
Formato di codifica
Descrizione
srli sposta i bit a destra di una quantità fissa e inserisce 0 nelle posizioni superiori liberate. È la forma a quantità costante di srl, che copre la meccanica e il riempimento con zeri. La i significa immediato, una costante codificata nell'istruzione.
La forma di srli appare di seguito, dove amount è un numero fisso da 0 a 31.
srli rd, rs1, amount
Uno spostamento a destra dimezza un numero una volta per ogni posizione spostata, e il riempimento con zeri tratta il valore come mai negativo, quindi srli divide un numero senza segno per una potenza di due senza resto. La riga successiva divide t0 per quattro.
srli t0, t0, 2
Combinato con un AND di mascheramento, srli estrae un campo da un valore impacchettato. Sposta il campo verso il basso, poi applica andi per mantenere solo i suoi bit. Leggere il secondo byte di una parola richiede uno spostamento a destra di 8 e un AND con 0xff.
Il manuale RISC-V codifica gli spostamenti costanti come una specializzazione del formato di tipo I, uno dei layout di istruzione standard. La quantità di spostamento occupa i 5 bit inferiori del campo immediato, e il bit 30 dell'istruzione distingue i due spostamenti a destra. srli esegue uno spostamento a destra logico, e 0 entrano nei bit superiori.
srli riempie sempre con 0. Ciò si adatta a pattern di bit grezzi e numeri che non sono mai negativi. Su un valore con segno che può essere negativo, gli 0 sovrascrivono il marcatore di segno. La divisione con segno per una potenza di due usa srai. La scelta tra i due riflette come si leggono i bit del registro.
Esempio
li t0, -8 srli t1, t0, 1 # t1 = 2147483644 (zero-filled)
