计算机基础实战课
彭东
网名 LMOS,Intel 傲腾项目关键开发者
19719 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 57 讲
计算机基础实战课
15
15
1.0x
00:00/00:00
登录|注册

17|RISC-V指令精讲(二):算术指令实现与调试

你好,我是 LMOS。
上节课,我们学习了算术指令中的加减指令和比较指令。不过一个 CPU 只能实现这两类指令还不够。如果你学过 C 语言,应该对“<<、>>、&、|、!”这些运算符并不陌生,这些运算符都需要 CPU 提供逻辑和移位指令才可以实现。
今天我们就继续学习逻辑指令(and、or、xor)和移位指令 (sll、srl、sra)。代码你可以从这里下载。话不多说,我们开始吧。

逻辑指令

从 CPU 芯片电路角度来看,其实 CPU 更擅长执行逻辑操作,如与、或、异或。至于为什么,你可以看看 CPU 的基础门电路。
RISC-V 指令集中包含了三种逻辑指令,这些指令又分为立即数版本和寄存器版本,分别是 andi、and、ori、or、xori、xor 这六条指令。我们学习这些指令的方法和上节课类似,也涉及到写代码验证调试的部分。

按位与操作:andi、and 指令

首先我们来学习一下 andi、and 指令,它们的形式如下所示:
andi rd,rs1,imm
#andi 立即数按位与指令
#rd 目标寄存器
#rs1 源寄存器1
#imm 立即数
and rd,rs1,rs2
#and 寄存器按位与指令
#rd 目标寄存器
#rs1 源寄存器1
#rs2 源寄存器2
上述代码中 rd、rs1、rs2 可以是任何通用寄存器,imm 是立即数。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入探讨了RISC-V指令集中的逻辑指令和移位指令。逻辑指令包括按位与和按位或操作,通过andi、and、ori和or指令实现。通过伪代码描述和实际代码验证,读者可以快速了解这些指令的具体操作和使用方法。文章还通过调试过程展示了指令执行后寄存器中的值,直观展示了指令的正确性。移位指令包括逻辑左移指令的实现原理和调试方法,为读者提供了更全面的指令集学习内容。通过具体的代码示例和调试过程,生动展现了逻辑指令的实际应用和调试方法,使读者能够更直观地理解指令的操作和验证过程。整体而言,本文内容丰富,实用性强,适合对RISC-V指令集感兴趣的读者阅读学习。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《计算机基础实战课》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(4)

  • 最新
  • 精选
  • 苏流郁宓
    逻辑运算有时效率高于加减乘除法,就好比十进制运算,有九九乘法表等加持,20个3直接等于60它的效率优于累计加20个3算出,但cpu的算力是软硬件共同的努力,软件方面通过优化算法结构能够直接提升效率,甚至在浮点运算中,好的算法结构能起事半功倍的效果!

    作者回复: 是的 你理解 相当透彻

    2022-09-02归属地:湖北
    1
  • 苏流郁宓
    答案简单,RISCV寄存器一共32个的啊

    作者回复: 对

    2022-09-02归属地:湖北
    1
  • 贾献华
    寄存器共 32 位。 2^5 = 32。

    作者回复: 对

    2022-09-02归属地:湖北
    2
    1
  • 徐大雷
    CPU更擅长计算逻辑操作 - 老师能大致讲解一下为啥么?谢谢
    2023-12-22归属地:湖北
收起评论
显示
设置
留言
4
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部