Under construction!

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


Навигатор

home My RISC-V home

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

handbook

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

сдвиги

загрузки

сохранения

См. также

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

Evgeny Eremin

Инструкция SLLW

SLLW rd, rs1, rs2

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

Формат: R

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

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

Примечания

  1. Выходящие за 32 разряда влево старшие биты теряются (точнее говоря, они в конце операции формируются по правилу расширения знака), а в младшие справа заносится 0.
  2. Инструкция позволяет получить 32-битное число, пригодное для 64-битной обработки.
  3. В документации указано, что при сдвигах, мнемоника которых заканчивается на W, в качестве сдвигаемого значения из rs1 берутся младшие 32 бита. Очевидно, что для сдвигов влево это не имеет значения.
  4. Все биты в rs2 кроме младших 5 игнорируются.
  5. Имеется разновидность операции - SLLIW, у которой вместо rs2 используется константа.

Пример

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

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

Итоговый код

0000000 00110 00111 001 11111 01110112 = 00 63 9F BB16


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


Free Web Hosting