Under construction!

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


Навигатор

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

handbook

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

логические

сдвиги

сравнения

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

системные

  • FENCE
  • ECALL
  • EBREAK

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

загрузки

сохранения


Evgeny Eremin

См. также

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

Инструкция SLTIU

SLTIU rd, rs1, imm

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

Формат: I

Операнды: rd и rs1 – регистры, imm – 12-битная константа (с расширением знака, хотя сравнение потом будет беззнаковым!)

Действие: сравнить как числа без знака rs1 и imm; если rs1 < imm, то rd := 1, иначе rd := 0.

Примечания

  1. Имеется разновидность операции SLTU, у которой вместо константы используется содержимое регистра.
  2. Имеются операции SLT и SLTI, которые сравнивают значения как числа со знаком.
  3. В отличие от чисел со знаком, где -1 < 1, при интерпретации без знака слово FF FF FF FF оказывается больше, чем представление единицы 00 00 00 01.

Пример 1

Инструкция SLTIU x31, x7, 6 сравнивает беззнаковым образом значение в регистре x7 с константой 6. В случае x7 < 6 в x31 заносится 1, иначе 0.
Код инструкции содержит следующие поля:

полеразрядностьсодержимоепримечание
imm12 битов0000000001106
rs15 битов00111x7
func33 бита011 всегда
rd5 битов11111x31
opcode7 битов0010011 всегда

Итоговый код

0000000 00110 00111 011 11111 00100112 = 00 63 BF 9316

Пример 2

Инструкция SLTIU rd, rs, 1 устанавливает результат в 1 при rs < 1, т.е. только при нулевом значении аргумента rs (не забывайте, что все числа без знака положительны). В ассемблере на ее базе вводится псевдооперация seqz rd, rs (Set if EQual Zero).


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


Free Web Hosting