伪指令&真实指令
伪指令:
- 没有对应的机器码
- 可以被汇编器翻译成一条/多条真实指令
- 方便程序员编写/阅读代码
- 简化常用操作
真实指令:
- RV32I
- RV32F等
ret&jalr x0,x1,0
ret:
- 伪指令
- 从一个子程序返回到调用该子程序的地方
jalr x0,x1,0:
- 真实指令
- 把x1(即ra)寄存器中的值作为跳转目标地址,同时把x0寄存器(即0)作为返回地址寄存器
- 相当于跳转到返回地址,且不保存新的返回地址
jalr基本用法
指令格式:jalr rd,rs1,imm
说明:
- rd是跳转返回地址寄存器
- rs1是跳转目标基地址寄存器
- imm是跳转目标偏移地址立即数
过程:
- 把当前pc+4存入rd寄存器(这样 程序就可以在执行完子程序后,通过rd寄存器中的值返回到调用它的地方)
- 把rs1+imm的值作为新的pc值