打印
[RISC-V MCU 应用开发]

从零开始设计RISC-V处理器——指令系统

[复制链接]
楼主: 9dome猫
手机看帖
扫描二维码
随时随地手机跟帖
21
9dome猫|  楼主 | 2022-5-28 16:57 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
汇编器执行结果如下:



使用特权

评论回复
22
9dome猫|  楼主 | 2022-5-28 16:58 | 只看该作者
6.BNE:bne指令只有在操作数寄存器rs1中的数值与操作数寄存器rs2的数值不相等时,才会跳转,跳转地址为offset的有符号扩展和最低位补0(即乘以2)的偏移量加上BNE指令的地址。

如:
addi x1,x0,1
label1:
add x1,x1,x1
addi x2,x0,4
bne x1,x2,label1 二进制:11111110001000001001110011100011

使用特权

评论回复
23
9dome猫|  楼主 | 2022-5-28 16:59 | 只看该作者
汇编器执行结果如下:

使用特权

评论回复
24
9dome猫|  楼主 | 2022-5-28 16:59 | 只看该作者
7.BTL:blt指令只有在操作数寄存器rs1中的数值小于操作数寄存器rs2的数值时(有符号数),才会跳转,跳转地址为offset的有符号扩展和最低位补0(即乘以2)的偏移量加上BLT指令的地址。

如:
addi x1,x0,-1
label1:
add x1,x1,x1
addi x2,x0,-2
blt x1,x2,label1 二进制:11111110001000001100110011100011

使用特权

评论回复
25
9dome猫|  楼主 | 2022-5-28 17:06 | 只看该作者
汇编器执行结果如下:

使用特权

评论回复
26
9dome猫|  楼主 | 2022-5-28 17:07 | 只看该作者
8.BGE:bge指令只有在操作数寄存器rs1中的数值大于或等于操作数寄存器rs2的数值时(有符号数),才会跳转,跳转地址为offset的有符号扩展和最低位补0(即乘以2)的偏移量加上BGE指令的地址。
(注意bge指令的条件是大于等于,而blt的条件是小于)

使用特权

评论回复
27
9dome猫|  楼主 | 2022-5-28 17:16 | 只看该作者
如:
addi x1,x0,-1
label1:
add x1,x1,x1
addi x2,x0,-2
bge x1,x2,label1 二进制:11111110001000001101110011100011

使用特权

评论回复
28
9dome猫|  楼主 | 2022-5-28 17:18 | 只看该作者
汇编器执行结果如下:

使用特权

评论回复
29
9dome猫|  楼主 | 2022-5-28 17:20 | 只看该作者
9.BLTU:bltu指令只有在操作数寄存器rs1中的数值小于操作数寄存器rs2的数值时(无符号数),才会跳转,跳转地址为offset的有符号扩展和最低位补0的偏移量加上BLTU指令的地址。

如:
addi x1,x0,-1
label1:
add x1,x1,x1
addi x2,x0,2
bltu x1,x2,label1 二进制:11111110001000001110110011100011

使用特权

评论回复
30
9dome猫|  楼主 | 2022-5-28 17:32 | 只看该作者
这里一定是不跳转的,X1的值为-2,但是将其看作是一个无符号的数,就是一个非常大的正数。汇编器执行结果如下:
有符号表示:

使用特权

评论回复
31
9dome猫|  楼主 | 2022-5-28 17:37 | 只看该作者
无符号表示:

使用特权

评论回复
32
9dome猫|  楼主 | 2022-5-28 17:40 | 只看该作者
10.BGEU:bgeu指令只有在操作数寄存器rs1中的数值大于或等于操作数寄存器rs2的数值时(无符号数),才会跳转,跳转地址为offset的有符号扩展和最低位补0的偏移量加上BGEU指令的地址。

使用特权

评论回复
33
9dome猫|  楼主 | 2022-5-28 17:42 | 只看该作者
如:
addi x1,x0,-1
label1:
add x1,x1,x1
addi x2,x0,-2
bgeu x1,x2,label1 二进制:11111110001000001111110011100011

这里一定是跳转一次的,因为刚开始时X1=X2,跳转一次后不会再跳转。

使用特权

评论回复
34
9dome猫|  楼主 | 2022-5-28 17:47 | 只看该作者
汇编器执行如果如下:

有符号表示:

使用特权

评论回复
35
9dome猫|  楼主 | 2022-5-28 17:48 | 只看该作者
无符号表示:


使用特权

评论回复
36
9dome猫|  楼主 | 2022-5-28 17:50 | 只看该作者
11.SB:sb指令 将操作数寄存器rs2中的低8位数据,写回存储器

如:
addi x1,x0,0xf1
addi x2,x0,0xf2
addi x3,x0,0xf3
addi x4,x0,0xf4
sb x1,0,x0
sb x2,1,x0
sb x3,2,x0
sb x4,3,x0

使用特权

评论回复
37
9dome猫|  楼主 | 2022-5-28 17:51 | 只看该作者
汇编器执行结果如下:

使用特权

评论回复
38
9dome猫|  楼主 | 2022-5-28 17:52 | 只看该作者
12.SH:sh指令 将操作数寄存器rs2中的低16位数据,写回存储器。

如:
lui x1,0xf0f11
addi x1,x1,0x7ff
sh x1,12,x0

使用特权

评论回复
39
9dome猫|  楼主 | 2022-5-28 17:53 | 只看该作者
汇编器执行结果如下:

寄存器X1:

使用特权

评论回复
40
9dome猫|  楼主 | 2022-5-28 17:53 | 只看该作者
数据存储器:

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则