RV64I基础整数指令集

匿名 (未验证) 提交于 2019-12-02 23:49:02

slli, srli,srai)也进行小小的改动。

ld


双字加载 (Load Doubleword). I-type, RV64I.
从地址 x[rs1] + sign-extend(offset)读取八个字节,写入 x[rd]。
压缩形式: c.ldsp rd, offset; c.ld rd, offset(rs1)


imm
11 10 9 8 7 6 5 4 3 2 1 0 rs1 func3 rd opcode
name type 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ld I 0 1 1 0 0 0 0 0 1 1

例子:

to do


lwu


无符号字加载 (Load Word, Unsigned). I-type, RV64I.
从地址 x[rs1] + sign-extend(offset)读取四个字节,零扩展后写入 x[rd]。

imm
11 10 9 8 7 6 5 4 3 2 1 0 rs1 func3 rd opcode
name type 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
lwu I 1 1 0 0 0 0 0 0 1 1

例子:

to do


sd

sd M[x[rs1] + sext(offset) ]= x[rs2][63: 0]
存双字(Store Doubleword)
. S-type, RV64I.
x[rs2]中的 8 字节存入内存地址 x[rs1]+sign-extend(offset)

压缩形式c.sdsp rs2, offset; c.sd rs2, offset(rs1)

imm imm
11 10 9 8 7 6 5 rs2 rs1 func3 4 3 2 1 0 opcode
name type 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
sd S 0 1 1 0 1 0 0 0 1 1

例子:

to do


addiw

addiw x[rd] = sext((x[rs1] + sext(immediate))[31:0])
加立即数字(Add Word Immediate).
I-type, RV64I.
把符号位扩展的立即数加到 x[rs1],将结果截断为 32 位,把符号位扩展的结果写入 x[rd]
。忽略算术溢出。
压缩形式c.addiw rd, imm


imm
11 10 9 8 7
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!