Вопрос о переводе между «прыгать» и «прыгать и ссылка» - PullRequest
0 голосов
/ 10 октября 2019

В спецификации risc-v говорится, что j является псевдокодом для jal. Меня смущает, как это работает, поскольку диапазон непосредственных значений различен для j (25-битный немедленный) и jal (20-битный немедленный) - а также jalr с 12-битным немедленным.

Будем весьма благодарны за любые разъяснения по поводу того, как обрабатывается этот перевод!

1 Ответ

3 голосов
/ 10 октября 2019

Нет, размер немедленного значения не отличается для j и jal, как говорится в официальной документации:

Простые безусловные переходы (псевдоинструкция ассемблера J) кодируются в виде JAL с rd = x0.

Следующая инструкция:

j offset

Расширится до

jal x0, offset

Возможно, вы думали, что 5 битов, кодирующих регистр rd (x0) было включено в смещение, но не включено.

...