【RISC-V 汇编】从零开始的 RISC-V 汇编之旅
RISC-V 是什么
- RISC-V 是一款开源、免版税的指令集架构(ISA),2010 年由 UC Berkeley 发布
- 模块化设计:基础整数 ISA(RV32I/RV64I)+ 可选标准扩展(M/A/F/D/C 等)
- 与 x86(CISC,闭源,>1500 条指令)和 ARM(RISC,需授权费)的本质区别
- RV64I 仅约 50 条基础指令,编码规整,学习成本远低于 x86
为什么要学 RISC-V 汇编
- 理解底层:寄存器、内存、指令执行周期——所有程序最终都运行在这些之上
- 调试与逆向:gdb 反汇编、性能热点分析、理解编译器优化
- 系统编程:bootloader、OS 内核、嵌入式开发都需要汇编
- 生态爆发:从 IoT 到服务器,Linux 内核已原生支持 RISC-V
教程全览:22 章覆盖 RISC-V 汇编体系
| 篇章 | 章节 | 主题 |
|---|---|---|
| 第一篇:基础篇 | 1-4 | RISC-V 历史、数制、体系结构、第一个程序 |
| 第二篇:指令篇 | 5-9 | 算术逻辑、立即数移位、访存、分支跳转、伪指令 |
| 第三篇:系统篇 | 10-13 | 栈与内存、调用约定、系统调用、汇编器与ELF |
| 第四篇:扩展篇 | 14-17 | M乘除、A原子、F/D浮点、C压缩指令 |
| 第五篇:实战篇 | 18-19 | C 互操作、交互式计算器 |
| 第六篇:特权架构篇 | 20-22 | 特权级别与CSR、异常与中断、虚拟内存 |
工具与环境
- 前期(第1-12章):使用 RISC-V ALE 在线环境,浏览器打开即用,零安装
- 后期(第13章起):GNU RISC-V Toolchain + QEMU 模拟器
- macOS:
brew install riscv64-elf-gcc riscv64-elf-binutils qemu - Ubuntu:
apt install gcc-riscv64-linux-gnu binutils-riscv64-linux-gnu qemu-user-static
- macOS:
前置知识
- 至少一门高级语言(C/Python/Java/Go 均可)
- 基本命令行操作(cd、ls、运行命令)
- 不需要任何汇编或硬件基础——本教程从零讲起
写作风格
全书采用简洁总结式语言,精炼要点。每章末尾有要点总结,方便回顾。
参考资源
- RISC-V 官方规范
- The RISC-V Reader: An Open Architecture Atlas — Patterson & Waterman
- Computer Organization and Design: RISC-V Edition — Patterson & Hennessy
- RISC-V ALE 在线环境
- riscv/learn 社区资源