blez
pseudolyszt.net obejmuje blez i inne instrukcje RISC-V w większych szczegółach.
Opis
blez wykonuje skok warunkowy, gdy wartość w rejestrze jest zerem lub liczbą ujemną. Nazwa oznacza branch if less than or equal to zero (skok, jeśli mniejsze lub równe zero). Poniższa postać skacze do oznaczonej pozycji, gdy rs jest co najwyżej zerem, a w przeciwnym razie przechodzi do następnej instrukcji.
blez rs, label
Asembler traktuje ją jako pseudoinstrukcję i przepisuje ją na poniższą instrukcję, która pyta, czy zero jest większe lub równe rejestrowi.
bge zero, rs, label
Argumenty są zamienione, ponieważ RISC-V nie ma skoku warunkowego mniejsze-lub-równe, więc bge wykonuje tę pracę, tak samo jak zbudowane jest ble. Porównanie jest ze znakiem. Skok przy zerze, co odróżnia blez od bltz, i jest przeciwieństwem bgtz, więc dla dowolnej wartości dokładnie jeden z tych dwóch wykonuje skok. Podstawowy skok warunkowy opisano w bge.
blez pasuje do sprawdzenia, że nie zostało nic do zrobienia. Pętla przetwarzająca liczbę pozostałych elementów może zakończyć się, gdy tylko licznik osiągnie zero lub spadnie poniżej zera.
blez t0, done
Powyższa linia skacze do done, gdy t0 wynosi 0 lub jest ujemne.
Rozwija się do
bge zero, rs, label
Asembler zastępuje tę pseudoinstrukcję rzeczywistą instrukcją lub instrukcjami wymienionymi powyżej.
Przykład
li t0, 0 blez t0, done # t0 <= 0, so jump to 'done'
