去年,一部讲述 RISC-V 技术基础的书在国内市场掀起了一阵学习热潮,它就是《RISC-V体系结构编程与实践》,这本书在豆瓣上更是获得了9.6的高评分。 这本书能取得叫好又叫座的成绩,也是因为 RISC-V 技术本身在市场上是众星捧月,RISC-V 基金会拥有超过 3000 家会员组织,囊括了国际国内多家知名高科技企业。 RI...
RISC-V架构常使用的软件编程工具包括但不限于编译器如GCC或LLVM、集成开发环境如Eclipse、调试器如GDB、以及模拟器如QEMU和Spike。其中,GCC(GNU Compiler Collection)是较为流行的选择,提供了对 RISC-V 指令集的支持。GCC 能够根据 RISC-V 的架构特点,如其模块化指令集和支持可扩展性,生成高效的机器代码。此外,GC...
内嵌汇编 即:允许在高级语言(c或c++)中嵌入汇编语言,从而实现汇编语言和高级语言混合编程。 这里只讲汇编器语法,主要参考《汇编语言编程基础-基于LoongArch》,下一讲再讲述内嵌汇编。 1 常用的汇编器指令 汇编器指令与汇编指令不同: 汇编指令:就是前面讲的各种运算,逻辑,移位,比较,跳转等指令,与架构相关; 汇编器...
RISC-V可以通过Go语言开发应用程序,利用其并发编程的能力,同时也能够提供高效的性能。 总之,RISC-V的开放生态系统使其可以支持多种编程语言。汇编语言是底层的机器语言,而C语言、C++语言、Rust语言和Go语言等高级编程语言则可以提供更高层次的抽象和更丰富的功能。根据具体的需求和开发者的个人偏好,可以选择适合的编程...
内嵌汇编(Inline Assembly),允许在高级语言(c或c++)中嵌入汇编语言,从而实现汇编语言和高级语言混合编程。 我之前的一篇学习笔记讲过内嵌汇编,见risc-v GCC内嵌汇编,但是有些地方写得不详细,所以重新写一遍,一部分是copy之前的笔记,另外一部分内容参考《汇编语言编程基础 基于LoongArch》。
RISC-V汇编语言编程 汇编语言 汇编语言Assembly language是一种低级语言,与机器语言(不同的ISA)对应。 缺点:难读难写难移植 优点:灵活强大 应用场景:需要直接访问底层硬件的地方(编写操作系统、引导程序)、需要对性能进行极致优化的地方(绕开编译器去优化指令)...
ASM:riscv-asm-manual/riscv-asm.md at master · riscv-non-isa/riscv-asm-manual。 下面进入正文。 有几种编码计算机程序的方法。 例如,一些程序使用抽象指令集 (abstract instruction sets) 进行编码,并由仿真器 (emulators) 或虚拟机 (virtual machines) 执行,这些程序是设计用于解释 (interpret) 和执行 ...
riscv支持向量中断和非向量中断两种编程模型,这里只演示用非向量中断,也就是中断发生后,所有的入口只有一个,不固定偏移。 在_trap_handler函数中,需要做的事情其实就是三件: 保存现场,判断并执行中断处理函数,恢复现场。 代码语言:javascript 复制 .globl _trap_handler_trap_handler:SAVE_CONTEXTcsrr a0,mcause ...
在汇编语言中操作顺序都需要程序员自己去掌握。例如,4+3*4 的运算,作何一种语言的编译器都先执行乘法,然后再加法。然而在汇编语言的编程世界中,我们必须首先选择乘法指令,然后再选择加法指令。没有为我们进行运算符号的优先级重排。 了解如何调用函数 在汇编语言中编写一个函数是一项非常艰苦的任务,大多数 ISA ...
去年,一部讲述 RISC-V 技术基础的书在国内市场掀起了一阵学习热潮,它就是《RISC-V体系结构编程与实践》,这本书在豆瓣上更是获得了9.6的高评分。 这本书能取得叫好又叫座的成绩,也是因为 RISC-V 技术本身在市场上是众星捧月,RISC-V 基金会拥有超过 30...