文件名称:控制转移指令-maven3种打包方式中maven-assembly-plugin的使用详解
文件大小:3.65MB
文件格式:PDF
更新时间:2024-06-29 10:59:18
risc-v
2.5 控制转移指令 RV32I提供了两类控制转移指令:无条件跳转和条件分支。RV32I中的控制转移指令,并 没有体系结构可见的分支延迟槽。 无条件跳转 跳转并连接(JAL)指令使用了UJ类格式,此处J立即数编码了一个2的倍数的有符号偏 移量。这个偏移量被符号扩展,加到pc上,形成跳转目标地址,跳转范围因此达到±1MB。 JAL将跳转指令后面指令的地址(pc+4)保存到寄存器rd中。标准软件调用约定使用x1来作 为返回地址寄存器。 普通的无条件跳转指令(汇编语言伪指令J)被编码为rd=x0的JAL指令。(译者注:x0是 只读寄存器,无法写入) 31 30 21 20 19 12 11 7 6 0 imm[20] imm[10:1] imm[11] imm[19:12] rd opcode 1 10 1 8 5 7 偏移量[20:1] dest JAL 间接跳转指令JALR(jump and link register)使用I类编码。通过将12位有符号I类立即数 加上rs1,然后将结果的最低位设置为0,作为目标地址。跳转指令后面指令的地址(pc+4) 保存到寄存器rd中。如果不需要结果,则可以把x0作为目标寄存器。