Under construction!

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


Навигатор

home My RISC-V home

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

handbook

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

сдвиги

загрузки

сохранения

См. также

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

Evgeny Eremin

Инструкция SRAIW

SRAIW rd, rs1, shamt

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

Формат: I

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

Действие: арифметический сдвиг вправо значения rs1 на shamt битов; в дополнение к обычному сдвигу SRAI, при SRAIW в старшие биты 32-63 результата расширяется знак из бита 31, и полученное число заносится в rd

Примечания

  1. Выходящие вправо младшие биты теряются, а в бит 31 поступает расширение знака из битов 32-63.
  2. Инструкция позволяет получить 32-битное число, пригодное для 64-битной обработки.
  3. В документации указано, что при сдвигах, мнемоника которых заканчивается на W, в качестве сдвигаемого значения из rs1 берутся младшие 32 бита. Старшие биты при SRAW удобно заполнить, расширив знак из 31 бита.
  4. Все биты в rs2 кроме младших 5 игнорируются.
  5. Имеется разновидность операции - SRAW, у которой вместо константы используются младшие биты из регистра.

Пример

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

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

Итоговый код

0100000 00011 00111 101 11111 00110112 = 40 33 DF 9B16


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


Free Web Hosting