Under construction!

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


Навигатор

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

handbook

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

логические

сдвиги

сравнения

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

системные

  • FENCE
  • ECALL
  • EBREAK

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

загрузки

сохранения


Evgeny Eremin

См. также

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

Инструкция SLT

SLT rd, rs1, rs2

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

Формат: R

Операнды: все три операнда – содержимое регистров

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

Примечания

  1. Имеется разновидность операции SLTI, у которой вместо rs2 используется константа.
  2. Имеются операции SLTU и SLTIU, которые сравнивают значения как числа без знака.

Пример 1

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

полеразрядностьсодержимоепримечание
func77 битов0000000 всегда
rs25 битов00110x6
rs15 битов00111x7
func33 бита010 всегда
rd5 битов11111x31
opcode7 битов0110011 всегда

Итоговый код

0000000 00110 00111 010 11111 01100112 = 00 63 AF B316

Пример 2

Инструкция SLT rd, rs, x0 устанавливает результат в 1 при rs < 0, т.е. при отрицательном значении аргумента rs. В ассемблере на ее базе вводится псевдооперация sltz rd, rs (Set if Less Than Zero). Аналогично вместо SLT rd, x0, rs можно писать sgtz rd, rs (Set if Greater Than Zero). В этом случае rd = 1 только когда rs > 0.


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


Free Web Hosting