Я натолкнулся на инструкцию под названием jal и jalr, изучая язык ассемблера RISC-V.
Мне было очень трудно понять разницу между jal и jalr.
jal x1, X
ItКажется, что приведенный выше код означает переход к X и сохранение адреса возврата, который обычно равен PC + 4, в x1.
Но после этого приходит jalr x0, 0(x1)
.
0(x1)
означает, что возвращаясь к адресу, который является адресом возврата, но что такое x0?
По существу, x0 равно нулю в RISC-V,
, так зачем нам нужен x0?
Какова действительная разница между этими двумя инструкциями jal
и jalr
?
Спасибо.