| Навигатор My RISC-V home
 Инструкции базового набора
RV32I:
 
|  
 арифметические
 логические
 сдвиги
 сравнения
 безусловныепереходы
 системные
 | условныепереходы
 загрузки
 сохранения
 
   
 
 См. также
 |  | Инструкция BLTBLT rs1, rs2, offsetНабор команд: базовый RV32I
 Формат: B (иногда пишут SB, подчеркивая общность с форматом S)
 Операнды: rs1 и rs2 – регистры, offset – 12-битная константа (со знаком!)
 Действие: сравнить как числа со знаком значения в регистрах; при rs1 < rs2 выполнить переход, т.е. прибавить к адресу инструкции перехода смещение offset.
 Примечания
Общие для всех переходов правила см. здесь.
Существует инструкция для перехода с противоположным условием – BGE (rs1 >= rs2).Инструкция BLE (rs1 <= rs2) в системе команд отсутствует – она заменяется псевдооперацией
 ble rs, rt, offsetс переставленными в BGE операндами:BGE rt, rs, offset.Имеется также операция BLTU, которая сравнивает значения регистров как числа без знака.
Доступный диапазон переходов составляет ±4 Кб. Если потребуется больше, можно применить прием, описанный в разделе "Диапазон переходов".
 Пример 1Инструкция BLT x6, x7, 8сравнивает числа вx6иx7и в случаеx6<x7выполняет переход, прибавляя к текущему значению счетчика смещение. Подчеркнем, что при смещении 8 (байтов) в программе будет пропущена только одна(!) 32-битная инструкция: еще 4 байта – это сама инструкция перехода.Код инструкции содержит следующие поля:
 
 
| поле | разрядность | содержимое | примечание |  
| offset1 | 7 битов | 0000000 | 0 |  
| rs2 | 5 битов | 00111 | x7 |  
| rs1 | 5 битов | 00110 | x6 |  
| func3 | 3 бита | 100 | всегда |  
| offset2 | 5 битов | 01000 | 8 |  
| opcode | 7 битов | 1100011 | всегда |  Примечание. Обратите внимание на тот факт, что в данном случае в старших битах смещения стоят нули и потому перестановка битов в смещении оказалась "незаметной". Но это не значит, что ее не было.
 Итоговый код
0000000 00111 00110 100 01000 11000112 = 00 73 44 6316
 Пример 2Инструкция BLT x6,x7, –4(ее код FE 73 4E E3) аналогичным образом при выполнении условия обеспечит переход на инструкцию, предшествующую условному переходу. Пример 3Имеются псевдооперации bltz rs, offsetиbgtz rs, offset, которые заменяются инструкциямиBLT rs, x0, offsetиBLT x0, rs, offset. |