ori
lyszt.net obejmuje ori i inne instrukcje RISC-V w większych szczegółach.
Format kodowania
Opis
ori wykonuje bitową operację OR ze stałą. Jej związek z or odpowiada związkowi andi z and. Litera i oznacza immediate (natychmiastowy), czyli stałą wartość zakodowaną w instrukcji. ori wykonuje OR rejestru z tą stałą, a nie OR dwóch rejestrów. Reguła OR się nie zmienia. Pozycja bitu w wyniku ma wartość 1, gdy którykolwiek bit na tej pozycji ma wartość 1, więc stała ustawia wybrane przez ciebie bity. Strona or opisuje tę operację.
Postać ori przedstawiono poniżej. Wykonuje OR wartości w rs1 ze stałą imm i zapisuje wynik do rd.
ori rd, rs1, imm
OR ustawia bity i pozostawia resztę bez zmian, więc ori włącza określone flagi, gdy wiesz, które chcesz. Następna linia włącza trzeci bit od prawej w t0 i pozostawia wszystkie pozostałe bity bez zmian. Prefiks 0b oznacza stałą binarną.
ori t0, t0, 0b100
Rejestry konfiguracji, flagi uprawnień i słowa stanu przechowują niezależne bity włączenia i wyłączenia, a ori włącza wybrane z nich w jednej instrukcji bez rejestru maski.
Podręcznik RISC-V stwierdza, że 12-bitowa wartość natychmiastowa jest rozszerzana znakowo do 32 bitów przed operacją. Dlatego stała ujemna ma ustawione wszystkie górne bity, a ori z -1 ustawia wszystkie bity wyniku.
Stała jest ograniczona do 12 bitów, podobnie jak w przypadku andi i addi. Aby ustawić bity poza tym zakresem, załaduj szerszą maskę do rejestru za pomocą li i użyj or.
Przykład
li t0, 0 ori t1, t0, 0xf # t1 = 0xf
