小编Tan*_*nia的帖子

为什么使用 JALR 而不是 JAL 来从子程序返回

我了解到,jaljalr都可以用于调用函数,而相反只能jal用于从这样的函数返回:

sum3:

    add a0, a0, a1
    add a0, a0, a2
    jalr x0, 0(ra)
Run Code Online (Sandbox Code Playgroud)

但是,此代码使用jal而不是jalr从函数返回,并且效果很好:

    call sum3
ret_sum3:   
    # following instructions
    # ...
sum3:

    add a0, a0, a1
    add a0, a0, a2
    jal x0, ret_sum3
Run Code Online (Sandbox Code Playgroud)

既然如此,为什么说jalr是函数返回的指令呢?我也可以用jal它。

assembly riscv

5
推荐指数
1
解决办法
1118
查看次数

标签 统计

assembly ×1

riscv ×1