查看: 1424|回复: 0
收起左侧

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

[复制链接]

  离线 

  • TA的每日心情
    奋斗
    2021-3-3 12:32
  • 签到天数: 10 天

    [LV.3]

    发表于 2020-8-24 16:03:29 | 显示全部楼层 |阅读模式

    有人预言,RISC-V或将是继Intel和Arm之后的第三大主流处理器体系。欢迎访问全球首家只专注于RISC-V单片机行业应用的中文网站

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    本帖最后由 皋陶 于 2020-8-28 21: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。


    本篇完,感谢关注:RISC-V单片机中文网




    上一篇:RISC-V单片机快速入门05-串口助手发送AT指令启动TCP Server
    下一篇:RISC-V qemu模拟器编译的问题
    RISCV作者优文
    全球首家只专注于RISC-V单片机行业应用的中文网站
    回复

    使用道具 举报

    高级模式
    B Color Image Link Quote Code Smilies

    本版积分规则

    关闭

    RISC-V单片机中文网上一条 /2 下一条



    版权及免责声明|RISC-V单片机中文网 |网站地图

    GMT+8, 2024-4-19 11:44 , Processed in 1.404921 second(s), 45 queries .

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