Under construction!

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


Навигатор

home My RISC-V home

Инструкции
базового набора
RV64I
(дополняет
RV32I):

handbook

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

сдвиги

загрузки

сохранения

См. также

  • набор RV32I
  • набор RV128I

Evgeny Eremin

Инструкция SUBW

SUBW rd, rs1, rs2

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

Формат: R

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

Действие: у разности rs1-rs2 старшие биты 32-63 заполняются значением из бита 31 (биты нумеруются справа налево с 0), т.е. фактически формируется 32-битное число с расширением знака; полученный таким способом результат сохраняется в rd.

Примечание

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

Пример 1

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

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

Итоговый код

0100000 00110 00111 000 11111 01110112 = 40 63 8F BB16

Пример 2

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


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


Free Web Hosting