关于 "jump" 和 "jump and link" 之间的翻译问题

Question about translation between "jump" and "jump and link"

在risc-v规范中,它说jjal的伪代码。我对它的工作原理感到困惑,因为 j(25 位立即数)和 jal(20 位立即数)的立即值范围不同 - 以及 jalr 12 位立即数。

如能说明如何处理此翻译,我们将不胜感激!

不,jjal 的立即值大小没有不同,正如官方文档所说:

Plain unconditional jumps (assembler pseudoinstruction J) are encoded as a JAL with rd=x0.

以下说明:

j offset

将扩展到

jal x0, offset

也许您认为编码 rd 寄存器 (x0) 的 5 位包含在偏移量中,但不是。