验证对RISC-V零偏移跳转指令的理解是否正确
关于RISC-V
j伪指令行为的验证与解答 你的理解完全正确,结合j等价于jal x0, offset的定义,逐条分析如下:
j 0:目标地址为当前执行该指令的PC,指令执行后会跳回自身,形成无限循环。j 4:RISC-V指令为4字节对齐,当前PC+4正好是下一条指令的地址,执行后等同于顺序执行下一条指令,在不考虑分支预测等硬件影响的前提下,确实是一种特殊的空操作。j 8:当前PC+8会跳过紧邻的下一条指令(PC+4位置的指令),直接跳转到下下条指令执行。
关于j 0:编译器绝对不会自动生成这类指令,因为它没有任何实际业务价值,只会导致程序进入无意义的死循环。只有手动编写汇编代码时,才会出现这类语句。
内容的提问来源于stack exchange,提问作者Schottky
相关产品推荐
相关产品推荐

