Under construction!

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


Навигатор

home My RISC-V home

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

handbook

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

сдвиги

загрузки

сохранения

См. также

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

Evgeny Eremin

Инструкция ADDIW

ADDIW rd, rs1, imm

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

Формат: I

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

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

Примечания

  1. Перед сложением у константы imm производится расширение знака.
  2. Имеется разновидность операции сложения ADDW, у которой вместо константы imm используется содержимое регистра.

Пример 1

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

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

Итоговый код

000000000110 00111 000 11111 00110112 = 00 63 8F 9B16

Пример 2

Инструкция ADDIW x31, x7, 0 расширяет знак младших 32 битов регистра x7 (32-битового слова) и записывает 64-битовый результат в x31. Для операции такого вида в ассемблере вводится псевдоинструкция sext.w x31, x7. Сокращение: sext.w = sign-extend word.
Например, если x7 = 7000 0000 8000 000016, то результат будет FFFF FFFF 8000 0000. Заметим, что старшие биты исходного значения x7 на результат никак не влияют.


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


Free Web Hosting