23、内存地址空间:程序中地址的三种产生方式你好,我是LMOS。 前面我们一起探讨了RISC-V芯片,设计和实现了一个迷你CPU。之后还深入研究了CPU上面运行的语言和指令系统,它们是构成程序的重要要素。依托于芯片和语言、指令,我们就可以编写和执行程序了。 不过我们开发应用的时候,还有个打交道...2026-03-02计算机基础实战课
22、RISC、V指令精讲(七):访存指令实现与调试你好,我是LMOS。 上节课我们说了RISC-V是加载储存体系结构的典型,只有加载指令和储存指令才有资格访问内存。 计算机运算完成的结果,一开始会放在寄存器中,但最终归宿还是内存,此时就需要存储指令发挥作用了。这节课我们就来看看RISC-V提供的存储...2026-03-02计算机基础实战课
21、RISC、V指令精讲(六):加载指令实现与调试你好,我是LMOS。 之前我们已经学过了RISC-V中的算术指令、逻辑指令、原子指令。这些指令主要的操作对象是寄存器,即对寄存器中的数据进行加工,这是RISC体系的重要特性。 但你是否想过寄存器中的数据从哪里来呢?答案是从内存中来,经过存储指令加载到...2026-03-02计算机基础实战课
20、RISC、V指令精讲(五):原子指令实现与调试你好,我是LMOS。 通过前面的课程,我们学过了RISC-V的各种跳转指令以及这些指令的各种变形,并且了解了它们的机器编码。 今天,我们开始学习RISC-V下的原子指令,原子指令是RISC-V的指令扩展,命名为 ‘A’。这个扩展指令中包含两部分,分别...2026-03-02计算机基础实战课
19、RISC、V指令精讲(四):跳转指令实现与调试你好,我是LMOS。 前面我们学习了无条件跳转指令,但是在一些代码实现里,我们必须根据条件的判断状态进行跳转。比如高级语言中的if-else 语句,这是一个典型程序流程控制语句,它能根据条件状态执行不同的代码。这种语句落到指令集层,就需要有根据条件状...2026-03-02计算机基础实战课
18、RISC、V指令精讲(三):跳转指令实现与调试你好,我是LMOS。 在[第五节课],我们曾经提到RV32I有两种跳转指令,即无条件跳转指令和有条件的跳转指令。 不过,前面我们只是简单了解了跳转指令长什么样,并没有深入讲解。接下来的两节课,我们就好好研究一下跳转指令的原理,挨个指令做调试。 这节课...2026-03-02计算机基础实战课