blez
псевдоlyszt.net охоплює blez та інші інструкції RISC-V більш детально.
Опис
blez виконує перехід, коли значення в регістрі дорівнює нулю або від'ємне. Назва означає branch if less than or equal to zero (перехід, якщо менше або дорівнює нулю). Наведена нижче форма виконує перехід до позначеної позиції, коли rs не більше нуля, а в іншому разі переходить до наступної інструкції.
blez rs, label
Асемблер розглядає її як псевдоінструкцію та переписує в наведену нижче інструкцію, яка перевіряє, чи zero більше або дорівнює регістру.
bge zero, rs, label
Операнди міняються місцями, тому що в RISC-V немає переходу за «менше або дорівнює», тож роботу виконує bge, так само як побудовано ble. Порівняння знакове. Перехід за нуля, що відрізняє blez від bltz, і це протилежність bgtz, тому для будь-якого значення рівно одна з двох виконує перехід. Див. bge щодо базового переходу.
blez підходить для перевірки того, що не залишилося нічого робити. Цикл, який обробляє кількість наявних елементів, може завершитися, щойно лічильник стане нулем або опуститься нижче нього.
blez t0, done
Наведений вище рядок виконує перехід до done, коли t0 дорівнює 0 або від'ємне.
Розгортається до
bge zero, rs, label
Асемблер замінює цю псевдоінструкцію реальною інструкцією або інструкціями, переліченими вище.
Приклад
li t0, 0 blez t0, done # t0 <= 0, so jump to 'done'
