Under construction!

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


Навигатор

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

handbook

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

логические

сдвиги

сравнения

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

системные

  • FENCE
  • ECALL
  • EBREAK

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

загрузки

сохранения


Evgeny Eremin

См. также

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

Инструкция SRAI (32 бита)

SRAI rd, rs1, shamt

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

Формат: I

Операнды: rd и rs1 – регистры, shamt – 5-битная константа

Действие: арифметический сдвиг вправо значения rs1 на shamt битов; результат помещается в rd

Примечания

  1. Выходящие вправо младшие биты теряются, а старшие слева заполняются значением знакового бита (расширение знака).
  2. Для 32-разрядного операнда число сдвигов shamt помещается в 5 битов. Остающиеся от 12-битной константы 7 битов считаются func7 как в формате R. В 64-разрядной инструкции SRAI под shamt отводится 6 битов, в 128-разрядной – 7.
  3. Имеется разновидность операции - SRA, у которой вместо константы используются биты из регистра.
  4. Операцией SRAI можно заменить деление со знаком на 2N.
  5. Принятое в стандарте RISC-V название поля shamt – это сокращение от SHift AMounT, т.е. количество сдвигов.

Пример

Инструкция SRAI x31, x7, 3 сдвигает содержимое регистра x7 на 3 бита вправо, расширяя знак (эквивалентно делению на 8), а результат помещает в x31.
Код инструкции для 32-битных данных содержит следующие поля:

полеразрядностьсодержимоепримечание
func77 битов0100000 всегда
shamt5 битов000113
rs15 битов00111x7
func33 бита101 всегда
rd5 битов11111x31
opcode7 битов0010011 всегда

Итоговый код

0100000 00110 00111 101 11111 00100112 = 40 33 DF 9316

Для увеличения разрядности shamt биты берутся из поля func7.


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


Free Web Hosting