Under construction!

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


Навигатор

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

handbook

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

логические

сдвиги

сравнения

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

системные

  • FENCE
  • ECALL
  • EBREAK

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

загрузки

сохранения


Evgeny Eremin

См. также

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

Инструкция JALR

JALR rd, rs1, imm

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

Формат: J (иногда пишут UJ, подчеркивая общность с форматом U)

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

Действие: безусловный абсолютный переход по содержимому регистра (обеспечивает, в частности, возврат из подпрограммы): к базовому регистру rs1 прибавляется imm и происходит переход по вычисленному адресу (в документации подчеркнуто, что младший бит суммы игнорируется); в rd заносится адрес возврата, т.е. адрес следующей за JALR команды

Примечания

  1. JALR = Jump And Link Register; если команда JAL сохранила в регистре адрес возврата, то JALR позволяет по нему вернуться. Так стандартно обеспечивается возврат из подпрограмм. Впрочем, никто не запрещает программе сформировать содержимое rs1 иным образом. Например, можно занести в него некоторый фиксированный адрес (скажем, адрес начала стандартной подпрограммы в ПЗУ).
  2. Механизм обработки imm такой же, как у всех операций формата I. В этом смысле переход по JALR отличается от остальных переходов, например, BEQ.
  3. Как правило, imm=0, т.е. переход происходит на указанный в регистре адрес.
  4. Если формировать адрес возврата не требуется, то в качестве rd указывается x0.

Пример

Инструкция JALR x0, x1, 0 обеспечивает возврат из подпрограммы, вызванной ранее командой JAL x1, sub. Адрес возврата не сохраняется (rd = x0).
Код инструкции содержит следующие поля:

полеразрядностьсодержимоепримечание
imm12 битов0000000000000
rs15 битов00001x1
funct33 бита000 всегда
rd5 битов00000x0
opcode7 битов1100111 всегда

Итоговый код

000000000000 00001 000 00000 11001112 = 00 00 80 6716


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


Free Web Hosting