Under construction!

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


Навигатор

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

handbook

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

логические

сдвиги

сравнения

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

системные

  • FENCE
  • ECALL
  • EBREAK

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

загрузки

сохранения


Evgeny Eremin

См. также

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

Инструкция SUB

SUB rd, rs1, rs2

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

Формат: R

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

Действие: rd := rs1-rs2

Примечания

  1. Переполнение игнорируется, результатом операции являются младшие биты.
  2. Операция вычитания константы отсутствует (бит в поле func7, по которому можно было бы различить ADDI и SUBI, попадает в константу). Предполагается замена инструкцией сложения ADDI с отрицательным значением (см. пример 2 в описании ADDI).

Пример 1

Инструкция SUB x31, x7, x6 из содержимого регистра x7 вычитает значение x6, а результат помещает в x31.
Код инструкции содержит следующие поля:

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

Итоговый код

0100000 00110 00111 000 11111 01100112 = 40 63 8F B316

Пример 2

Псевдооперация для изменения знака числа на противоположный neg x7, x6 преобразуется в SUB x7, x0, x6 (добавим, что x0 всегда равен нулю).


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


Free Web Hosting