Under construction!

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


Навигатор

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

handbook

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

логические

сдвиги

сравнения

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

системные

  • FENCE
  • ECALL
  • EBREAK

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

загрузки

сохранения


Evgeny Eremin

См. также

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

Инструкция LW

LW rd, base, offset

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

Формат: I

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

Действие: прочитать слово (word) из 4 байт в rd; адрес равен сумме базового регистра (в традиционной для rs1 позиции) и смещения (offset)

Примечания

  1. Существуют инструкции для считывания другого количества байт: LB и LH. Кроме того, можно читать данные без расширения знака (LBU и LHU). Конкретный вариант считывания задается в поле funct3.
  2. Если инструкция LW выполняется в RV64I, то в прочитанном 32-битном значении дополнительно производится расширение знака (до 64 битов). В состав RV64I также входит добавочная инструкция LWU, которая не делает расширения знака.

Пример

Инструкция LW x31, x3, 8 в ассемблере часто записывается LW x31, 8(x3), где более наглядно показан адрес ОЗУ – смещение 8 байт относительно значения в x3. Команда считывает в x31 4-байтовое слово из памяти по указанному адресу.
Код инструкции содержит следующие поля:

полеразрядностьсодержимоепримечание
offset12 битов000000001000 8
base5 битов00011x3
funct33 бита010 всегда
rd5 битов11111x31
opcode7 битов0000011 всегда

Итоговый код

0000000 01000 00011 010 11111 00000112 = 00 81 AF 8316

Примечание. Регистр x3 обычно используется системой для хранения начального адреса области глобальных данных.


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


Free Web Hosting