Under construction!

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


Навигатор

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

handbook

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

логические

сдвиги

сравнения

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

системные

  • FENCE
  • ECALL
  • EBREAK

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

загрузки

сохранения


Evgeny Eremin

См. также

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

Инструкция ADDI

ADDI rd, rs1, imm

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

Формат: I

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

Действие: rd := rs1+imm

Примечания

  1. При преобразовании константы к 32-битному формату происходит расширение знака, т.е. знаковый (11-й) бит константы копируется в биты 12-31. (Биты нумеруются справа налево начиная с 0.)
  2. Переполнение игнорируется, результатом операции являются младшие биты.
  3. Имеется разновидность операции сложения ADD, у которой вместо константы imm используется содержимое регистра.
  4. Команда ADDI часто используется в псевдооперациях (см. примеры 4-5).

Пример 1

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

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

Итоговый код

000000000110 00111 000 11111 00100112 = 00 63 8F 9316

Пример 2

Инструкция ADDI x6, x6, -1 уменьшает значение x6 на 1.

Пример 3

Инструкция ADDI x7, x0, -2 заносит в x7 значение -2; примите во внимание, что x0 всегда равно 0.
Еще раз подчеркнем, что исходная константа -2 = FFE будет преобразована к 32-битному представлению с расширением знака, т.е. в регистре x7 получится код FFFFF FFE.

Пример 4

Псевдооперация mv x7, x3 преобразуется в инструкцию ADDI x7, x3, 0.

Пример 5

Инструкцию ADDI x0, x0, 0 стандарт RISC-V рекомендует как «пустую» псевдооперацию nop.


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


Free Web Hosting