MyFPGA Forum

 找回密码
 注册
搜索
查看: 2035|回复: 0

RISC-V平台的汇编指令解析

[复制链接]
发表于 2020-6-15 16:27:08 | 显示全部楼层 |阅读模式
本帖最后由 BOB_Sun 于 2020-6-15 16:33 编辑

csrr: a0, 0xF14 //把0xF14的值读入到a0中

andi: a1, a0, 0x1f //把a0 和0x1F按位与运算后存储到a1中

srli:  a0, a0, 5 //将高位移动到低位,覆盖a0 (SLLI是逻辑左移(0被移入低位); SRLI是逻辑右移(0被移入高位);SRAI是算术右移(原来的符号位被复制到空出的高位中))

li:    a2, ARCHI_FC_CID //将ARCHI_FC_CID 的低6位取出写入到a2中 (C.LI 指令将符号扩展的 6 位立即数 imm,写入寄存器 rd 中)

la:   t1, _start  //加载地址,把_strart加载到系统中 (la rd, symbol :          auipc rd, symbol[31:12] addi rd, rd, symbol[11:0])

sw:  t1, 0x80(t2)  //C.SW 指令将寄存器 rs2’中的 32 位值保存到存储器中。其有效地址的计算是通过将 零 扩展的偏移量×4,然后加上寄存器 rs1’中的基址形成的。它被扩展为 sw rs2’, offset[6:2](rs1’)指令.

bltu:  t0, t1, 1b //如果无符号的t0小于无符号的t1,则跳转到1b (BLT和BLTU 将跳转,如果rs1小于rs2,分别使用有符号数和无符号数进行比较。BGE和BGEU将跳转,如果rs1大于等于rs2,分别使用有符号数和无符号数进行比较。注意,BGT、BGTU、BLE和BLEU可以通过将BLT、BLTU、BGE、BGEU的操作数对调来实现)

jalr:  x1, t2 //C.JALR(jump and link register)指令执行与 C.JR 指令相同的操作,但是它还将在跳转指 令后的指令地址(pc+2)写入到链接寄存器 x1 中。C.JALR 指令被扩展为 jalr x1, rs1, 0。

lw:    x10, 0(x10) //C.LW 指令将一个 32 位数值从存储器读入寄存器 rd’中。其有效地址的计算是通过将 零扩展的偏移量×4,然后加上寄存器 rs1’中的基址形成的。它被扩展为 lw rd’, offset[6:2](rs1’)指令。

slli:  x9, x9, 2  //C.SLLI 指令是一条 CI 格式的指令,它对寄存器 rd 中的数值进行逻辑左移操作,并将结果写入 rd。




转自:https://www.cnblogs.com/dylancao/
作者:虚生[url]https://www.cnblogs.com/dylancao/[/url]

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|MyFPGA

GMT+8, 2024-4-16 19:50 , Processed in 0.043434 second(s), 16 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表