![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
risc-v
文章平均质量分 88
IOT.FIVE.NO.1
这个作者很懒,什么都没留下…
展开
-
【RISC-V操作系统】从零开始写一个操作系统(九)C语言与汇编混合编程
两种方式:内嵌和汇编调用c函数。原创 2023-04-12 19:49:44 · 508 阅读 · 2 评论 -
【RISC-V操作系统】从零开始写一个操作系统(八)RISCV汇编语言编程
这一节来讲条件分支,跳转等等还有一些杂项。原创 2023-04-08 22:02:56 · 1757 阅读 · 0 评论 -
【RISC-V操作系统】从零开始写一个操作系统(七)RISCV汇编语言编程
上一篇留下的负数加法可以看到在寄存器中的表现就是如此了,x7是-2,x5是-1。这里不多说,大家复习补码的概念即可。来看看减法:sub使用make code 反汇编:尝试将b3 05 95 00 (低地址到高地址)反汇编:实际指令:00 95 05 b3 =》0000 0000 1001 0101 0000 0101 1011 0011对照表可以看出是加法操作的寄存器为x9,x10,x11,x11=x9+x10。原创 2023-04-04 23:00:30 · 1067 阅读 · 0 评论 -
【RISC-V操作系统】从零开始写一个操作系统(六)RISCV汇编语言编程
指的就是加减。指令结构之前已经说过:opcode为op,rs1,rs2为源寄存器地址(例子里为6:00110和7:00111),rd为目标位置寄存器地址(例子里为5:00101),这里可以理解为rd=rs1+rs2。funct3取值000,funct7取值0000000,和opcode:0110011一起决定了指令类别。可以观察到add和sub的区别就在funct7。对照指令结构自己分析一下即可。这就是add指令。后面可以来练习写一段汇编来模拟运行并调试。原创 2023-03-24 23:47:28 · 1436 阅读 · 0 评论 -
【RISC-V操作系统】从零开始写一个操作系统(五)RISCV汇编语言编程
不同的汇编器可能规则不同。我们使用GNU工具链。一个汇编程序(.s/.S)由多条语句组成(statement)。一条语句由三部分组成:[label:] [operation] [comment]4.指令类型用于寄存器-寄存器操作的 R 类型指令,用于短立即数和访存 load 操作的 I 型指令,用于访存 store 操作的 S 型指令,用于条件跳转操作的 B 类型指令,用于长立即数的 U 型指令,用于无条件跳转的 J 型指令标签,操作,注释。原创 2023-03-20 23:18:44 · 2171 阅读 · 0 评论 -
【RISC-V操作系统】从零开始写一个操作系统(四)嵌入式开发操作系统模型
嵌入式开发是一种和硬件结合紧密的开发方式。是一种比较综合的技术:在特定的硬件环境下针对特定的某款硬件进行开发。我们的操作系统就会涉及到很多嵌入式开发的内容。原创 2023-03-18 23:43:43 · 779 阅读 · 0 评论 -
【RISC-V操作系统】从零开始写一个操作系统(三)编译与链接
gnu compiler collection,由GNU开发的,遵循GPL许可证发布的编译器套件。支持C,C++,objectiveC,Fortran,ada和Go语言等等语言前端。已经被移植到多种计算机体系架构上。gcc的初衷是为GNU操作系统专门编写一款编译器,现在已经被大多数unix-like操作系统采纳为标准编译器。executable linkable format是一种unix-like系统上的二进制标准。也就是可执行可链接格式。elf文件类型说明实例。原创 2023-03-16 20:50:26 · 531 阅读 · 0 评论 -
【RISC-V操作系统】从零开始写一个操作系统(二)RISC-V ISA介绍与学习
指令集架构(instruction set architecture):是底层硬件电路面向上层应用程序提供的一层接口规范。基本数据类型(byte,halfword,word)寄存器指令寻址模式异常或者中断的处理方式等等。。也就是操作系统和底层硬件之间的东西。是一种规范。这里的底层硬件可能指的是微架构。比如有一个指令集架构叫做x86,那么除了intel还有amd在做x86这一套指令集。两个硬件结构不同,但是都实现的一种微架构。理解为:微架构就是对这个指令集的实现。原创 2023-03-15 23:59:28 · 1167 阅读 · 0 评论 -
【RISC-V操作系统】从零开始写一个操作系统(一)准备开发环境和前置知识
记录一个零基础(操作系统开发)的学习过程,希望能帮到所有在学习路上的同学。那么第一节:准备开发环境和前置知识。这一节的目的是准备开发要用的环境和基础知识。原创 2023-03-15 10:52:30 · 764 阅读 · 0 评论