srli
lyszt.net obejmuje srli i inne instrukcje RISC-V w większych szczegółach.
Format kodowania
Opis
srli przesuwa bity w prawo o stałą wartość i wstawia 0 na zwolnione górne pozycje. Jest to forma o stałej wartości instrukcji srl, która opisuje mechanikę i wypełnianie zerami. Litera i oznacza immediate (natychmiastowy), czyli stałą zakodowaną w instrukcji.
Forma srli jest przedstawiona poniżej, gdzie amount to stała liczba od 0 do 31.
srli rd, rs1, amount
Przesunięcie w prawo dzieli liczbę na pół raz za każde przesunięte miejsce, a wypełnianie zerami traktuje wartość jako nigdy nieujemną, więc srli dzieli liczbę bez znaku przez potęgę dwójki bez reszty. Następna linia dzieli t0 przez cztery.
srli t0, t0, 2
W połączeniu z maskującym AND, srli wyodrębnia jedno pole z upakowanej wartości. Przesuń pole w dół na sam dół, a następnie zastosuj andi, aby zachować tylko jego bity. Odczyt drugiego bajtu słowa wymaga przesunięcia w prawo o 8 i AND z 0xff.
Podręcznik RISC-V koduje przesunięcia o stałej wartości jako specjalizację formatu typu I, jednego ze standardowych układów instrukcji. Wartość przesunięcia zajmuje dolne 5 bitów pola natychmiastowego, a bit 30 instrukcji rozróżnia dwa przesunięcia w prawo. srli wykonuje logiczne przesunięcie w prawo, a do górnych bitów wchodzą 0.
srli zawsze wypełnia zerami. To pasuje do surowych wzorców bitowych i liczb, które nigdy nie są ujemne. W przypadku wartości ze znakiem, która może być ujemna, zera nadpisują znacznik znaku. Dzielenie ze znakiem przez potęgę dwójki używa srai. Wybór między nimi odzwierciedla sposób, w jaki odczytujesz bity rejestru.
Przykład
li t0, -8 srli t1, t0, 1 # t1 = 2147483644 (zero-filled)
