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

21|RISC-V指令精讲(六):加载指令实现与调试

你好,我是 LMOS。
之前我们已经学过了 RISC-V 中的算术指令、逻辑指令、原子指令。这些指令主要的操作对象是寄存器,即对寄存器中的数据进行加工,这是 RISC 体系的重要特性。
但你是否想过寄存器中的数据从哪里来呢?答案是从内存中来,经过存储指令加载到寄存器当中。
RISC-V 是一个典型的加载储存体系结构,这种体系类型的 CPU,只有加载与储存指令可以访问内存,运算指令不能访问内存。这节课我们就来学习一下 RISC-V 的加载指令。
顾名思义,加载指令就是从一个地址指向的内存单元中,加载数据到一个寄存器中。根据加载数据大小和类型的不同,加载指令还可以细分成五条加载指令,分别是加载字节指令、无符号加载字节指令、加载半字指令、无符号加载半字指令、加载字指令。
这节课的代码,你可以从这里下载。

加载字节指令:lb 指令

我们先从加载字节指令开始说起。在研究加载字节指令之前,我们先来看看 RISC-V 的加载指令的格式,其对应的汇编语句格式如下:
指令助记符 目标寄存器,源操作数2(源操作数1)
对于加载指令,指令助记符可以是 lb、lbu、lh、lhu、lw,目标寄存器可以是任何通用寄存器,源操作数 1 也可以是任何通用寄存器,源操作数 2 则是立即数。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入讲解了RISC-V指令集中的加载指令,包括加载字节指令(lb)和无符号加载字节指令(lbu)的实现与调试,以及加载半字指令(lh)、无符号加载半字指令(lhu)和加载字指令(lw)的功能和验证过程。通过详细的汇编代码和伪代码解释,读者可以清晰了解指令的操作过程和实现原理。文章通过调试过程展示了指令的正常工作情况,帮助读者加深理解。总体而言,本文通过具体的例子和调试过程,生动地展现了RISC-V加载指令的实现与调试过程,适合对RISC-V指令集感兴趣的读者阅读学习。 文章重点回顾了学习的五条加载指令,分别是加载字节指令、无符号加载字节指令、加载半字指令、无符号加载半字指令、加载字指令,强调了它们对不同大小和符号的数据加载的处理能力,为高级语言实现有无符号的类型变量提供了基础,让开发工作更便利。最后,文章提出了思考题,引发读者思考加载指令中处理数据符号问题的原因。 总的来说,本文通过具体的例子和调试过程,生动地展现了RISC-V加载指令的实现与调试过程,适合对RISC-V指令集感兴趣的读者阅读学习。

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

全部留言(2)

  • 最新
  • 精选
  • 苏流郁宓
    作者已经说过五个加载指令可以处理有符号或者无符号的数据,猜想储存数据模式(指令加数据),应该可以通过无符号统一储存数据模式中的数据部分,然后在运算时通过指令翻译成有符号的数据就行!

    作者回复: 储存指令不需要管符号问题 内存中的数据它不能直接参与运算,需要先加载到寄存器中才可以

    2022-09-12归属地:湖北
    1
  • jeigiye
    取32位,已经包括符号位了。

    作者回复: 是的

    2022-09-15归属地:湖北
收起评论
显示
设置
留言
2
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部