【计算机组成原理】RISCV指令集指令简单介绍

【计算机组成原理】RISCV指令集指令简单介绍

计算机组成原理课程复习中,课程要求掌握理解精简指令集的构成,掌握计算、存取、跳转等基本指令,能够读懂ppt中的微程序实例。
因此我仔细查找技术手册并整理了一些RISCV指令集的常用指令含义及用法,整理如下:
首先明确:RISCV32位仅有32个寄存器,其中可用31个(x1-x31),x0默认取0

add 加法 add rd,rs,rt
//rd=rs+rt

sub 减法 sub rd,rs,rt
//rd=rs-rt

addi 带立即数的加法 addi rt,rs,c
//rt=rs+c(c为立即数)

div 除法 div rd,rs1,rs2
//rd=rs1除以rs2,补码形式写入

mul 乘法 mul rd,rs1,rs2
//rd=rs1乘rs2

rem 求余数 rem rd,rs1,rs2
//rd=rs1除以rs2的余数,补码形式写入

not 写入补码 not rd,rs2
//将rs2的二进制补码写入rd

and 位与 and rd,rs,rt
//rd=rs rt按位与

andi 带立即数的位与 andi rd,rs1,c
//rd=rs1与立即数c求位与

or 位或 or rd,rs,rt
//rd=rs rt按位或

xor 异或 xor rd,rs,rt
//rd=rs 异或rt

sll 逻辑左移,空位补0 sll rd,rs1,rs2
//rd=rs1的存储数左移rs2位

slli 带立即数的左移 slli rd,rs1,c
//rd=rs1的存储数左移立即数c位

srl 逻辑右移,空位补0 srl rd,rs1,rs2
//rd=rs1的存储数右移rs2位

sra 算术右移,空位补最高位 sra rd,rs1,rs2
//算术右移,空位用最高位填充

beq 相等逻辑判断跳转 beq rs1,rs2,offset
//若rs1=rs2,pc值设为当前值加符号位扩展偏移offset

bge 大于逻辑判断跳转 bge rs1,rs2,offset
//若rs1>rs2,pc值设为当前值加符号位扩展偏移offset

blt 小于逻辑判断跳转 blt rs1,rs2,offset
//若rs1<rs2,pc值设为当前值加符号位扩展偏移offset

bne 不等逻辑判断跳转 bne rs1,rs2,offset
//若rs1≠rs2,pc值设为当前值加符号位扩展偏移offset

j 无条件跳转指令 j offset
// pc+立即数offset为跳转目标

jal 有返回无条件跳转 jal rd,offset
//设置rd=pc+4为返回地址,pc+立即数offset为跳转目标,rd默认为x1

jr 跳转到寄存器指令 jr rs1
//设置pc为rs1
//等效于jalr x0,0(rs1)

jalr 远跳转指令 jalr rd,offset(rs1)
//设置pc为rs1+立即数offset,并写入返回值pc+4到rd,rd默认x1

ret 返回指令 ret
//从子过程返回,实际相当于jalr x0,0(x1)

la 加载地址指令 la rd,symbol
//

li 加载立即数指令 li rd,immediate
//将立即数immediate加载到rd中

lw 从主存读取数据指令 lw rd,offset(rs1)
//从主存地址rs1地址+立即数offset处读取数据写入寄存器rd处

sw 将寄存器数据存入主存 sw rs2,offset(rs1)
//将寄存器rs2中存储的数据写入到主存地址rs1地址+立即数offset处

  • 6
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值