slt
lyszt.net obejmuje slt i inne instrukcje RISC-V w większych szczegółach.
Format kodowania
Opis
slt porównuje dwie liczby i zapisuje wynik jako 1 lub 0. Nazwa oznacza set less than (ustaw, jeśli mniejsze niż). Poniższa forma sprawdza, czy rs1 jest mniejsze niż rs2. Jeśli test się powiedzie, instrukcja zapisuje 1 do rejestru docelowego rd. Jeśli się nie powiedzie, zapisuje 0.
slt rd, rs1, rs2
Porównania można użyć na dwa sposoby. Instrukcja skoku warunkowego skacze na jego podstawie. Alternatywnie odpowiedź tak lub nie można zapisać jako liczbę, 1 dla prawdy i 0 dla fałszu, i użyć później. slt wykonuje zapis. Asembler reprezentuje prawdę i fałsz za pomocą zapisanego 1 lub 0, a tę wartość można dodawać, maskować lub łączyć jak każdą inną liczbę.
Porównanie traktuje wartości jako ze znakiem, więc mogą być ujemne, a -1 liczy się jako mniejsze niż 0. Powiązana instrukcja sltu traktuje je jako bez znaku, co zmienia wynik dla dużych wartości i dla wartości, które wyglądają na ujemne.
Podręcznik RISC-V opisuje slt i sltu jako porównania ze znakiem i bez znaku, które zapisują 1 do rd, jeśli rs1 jest mniejsze niż rs2, a 0 w przeciwnym razie. Używa także slt w sprawdzaniu przepełnienia dla ogólnego dodawania ze znakiem. Po dodaniu druga linia poniżej rejestruje, czy drugi operand jest ujemny, trzecia linia rejestruje, czy suma jest mniejsza niż pierwszy operand, a ostatnia linia skacze, gdy obie odpowiedzi się różnią.
add t0, t1, t2 slti t3, t2, 0 slt t4, t0, t1 bne t3, t4, overflow
Rozumowanie jest takie, że suma powinna być mniejsza niż jeden operand tylko wtedy, gdy drugi operand jest ujemny.
Nie istnieje instrukcja set greater than. Aby sprawdzić, czy a jest większe niż b, zamień operandy i zapytaj, czy b jest mniejsze niż a. Przykład porównuje 3 i 9. Ponieważ 3 jest mniejsze niż 9, t2 jest ustawione na 1.
Przykład
li t0, 3 li t1, 9 slt t2, t0, t1 # t2 = 1
Odwołania
- [1]RISC-V International. The RISC-V Instruction Set Manual, Volume I: Unprivileged Architecture. Version 20260120. Section 2.4.2, Integer Register-Register Instructions, page 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.
