Under construction!

URL данного справочника
emc.orgfree.com/RISC-V/hb


Навигатор

Инструкции базового набора RV32I:

handbook

арифметические

логические

сдвиги

сравнения

безусловные
переходы

системные

  • FENCE
  • ECALL
  • EBREAK

условные
переходы

загрузки

сохранения


Evgeny Eremin

См. также

  • набор RV64I
  • набор RV128I

Инструкция BGEU

BGEU rs1, rs2, offset

Набор команд: базовый RV32I

Формат: B (иногда пишут SB, подчеркивая общность с форматом S)

Операнды: rs1 и rs2 – регистры, offset – 12-битная константа (со знаком!)

Действие: сравнить как числа без знака значения в регистрах; при rs1 >= rs2 выполнить переход, т.е. прибавить к адресу инструкции перехода смещение offset.

Примечания

  1. Общие для всех переходов правила см. здесь.
  2. Существует инструкция для перехода с противоположным условием – BLTU (rs1 < rs2).
    Инструкция BGTU (rs1 > rs2) в системе команд отсутствует – она заменяется псевдооперацией bgtu rs, rt, offset с переставленными в BLTU операндами: BLTU rt, rs, offset.
    Имеется также операция BGE, которая сравнивает значения регистров как числа со знаком.
    В отличие от чисел со знаком, где –1<1, при интерпретации без знака слово FF FF FF FF оказывается больше, чем представление единицы 00 00 00 01.
  3. Доступный диапазон переходов составляет ±4 Кб. Если потребуется больше, можно применить прием, описанный в разделе "Диапазон переходов".

Пример 1

Инструкция BGEU x6, x7, 8 сравнивает числа без знака в x6 и x7 и в случае x6 >= x7 выполняет переход, прибавляя к текущему значению счетчика смещение. Подчеркнем, что при смещении 8 (байтов) в программе будет пропущена только одна(!) 32-битная инструкция: еще 4 байта – это сама инструкция перехода.
Код инструкции содержит следующие поля:

полеразрядностьсодержимоепримечание
offset17 битов0000000 0
rs25 битов00111x7
rs15 битов00110x6
func33 бита111 всегда
offset25 битов010008
opcode7 битов1100011 всегда

Примечание. Обратите внимание на тот факт, что в данном случае в старших битах смещения стоят нули и потому перестановка битов в смещении оказалась "незаметной". Но это не значит, что ее не было.

Итоговый код

0000000 00111 00110 111 01000 11000112 = 00 73 74 6316

Пример 2

Инструкция BGEU x6,x7, –4 (ее код FE 73 7E E3) аналогичным образом при выполнении условия обеспечит переход на инструкцию, предшествующую условному переходу.


Автор справочника - Евгений Александрович Еремин (Пермский государственный гуманитарно-педагогический университет). e_eremin@yahoo.com


Free Web Hosting