slti
lyszt.net obejmuje slti i inne instrukcje RISC-V w większych szczegółach.
Format kodowania
Opis
slti porównuje rejestr ze stałą i zapisuje 1 lub 0 do miejsca docelowego. Jest to slt, które porównuje dwa rejestry i zapisuje wynik jako liczbę (zobacz tę stronę), z drugą wartością podaną jako wartość natychmiastowa. Wartość natychmiastowa to stała zakodowana w instrukcji, a litera i w nazwie to oznacza.
Postać slti pokazano poniżej. Gdy wartość w rs1 jest mniejsza niż stała imm, rd otrzymuje 1, a w przeciwnym razie 0.
slti rd, rs1, imm
Porównanie jest ze znakiem, więc zarówno rejestr, jak i stała są odczytywane jako liczby, które mogą być ujemne.
Użyj jej, aby porównać zmienną ze stałym progiem znanym z góry. Sprawdzenie, czy indeks jest mniejszy niż 10 lub czy wartość spadła poniżej limitu, wymaga jednego slti. Następny wiersz pyta, czy t0 jest mniejsze niż zero, co sprawdza wartość ujemną i ustawia t1 na 1 dla wartości ujemnych oraz na 0 w przeciwnym razie.
slti t1, t0, 0
Podręcznik RISC-V mówi, że slti umieszcza 1 w rd, jeśli rs1 jest mniejsze niż rozszerzona znakowo wartość natychmiastowa, gdy oba są traktowane jako liczby ze znakiem, a 0 w przeciwnym razie. Sprawdzenie przepełnienia dla ogólnego dodawania ze znakiem używa jej, jak pokazano na stronie slt, aby zapisać, czy operand jest ujemny.
Stała mieści się w zakresie od -2048 do 2047. Aby porównać z większą wartością, załaduj stałą do rejestru za pomocą li i użyj slt. Asembler odrzuca stałą spoza zakresu z komunikatem o błędzie.
Przykład
li t0, 3 slti t1, t0, 5 # t1 = 1 (3 < 5)
Odwołania
- [1]RISC-V International. The RISC-V Instruction Set Manual, Volume I: Unprivileged Architecture. Version 20260120. Section 2.4.1, Integer Register-Immediate Instructions, pages 28 to 29.
- [2]RISC-V International. The RISC-V Instruction Set Manual, Volume I: Unprivileged Architecture. Version 20260120. Section 2.4, Integer Computational Instructions, page 27.
