《RISC-V汇编编程导论》是一本面向程序员的教科书。通过RISC-V ISA引导读者了解汇编编程和汇编过程的主要概念,学会如何用汇编语言来编程。

这本书分为三个部分:I)计算机系统和汇编语言介绍,II)用户级编程,III)系统级编程。
第一部分,“计算机系统和汇编语言介绍”
首先,简要概述了计算机是如何组织起来的,程序是如何由计算机执行的。然后,讨论了数据在现代计算机上是如何表示的,包括数字和文本是如何表示的,数据在主存储器上是如何组织的,以及计算机指令是如何编码的。
接下来,讨论如何生成本机程序、汇编过程,以及目标(二进制)文件的主要元素,包括符号、标签和索引。
最后,介绍了汇编语言的主要元素和一些最常见的汇编指令。
值得注意的是,本部分介绍的大多数概念都与RISC-V ISA独立,也就是说,在用汇编语言为其他ISA编程时不会改变。
第二部分,用户级编程
集中于用户软件的实现,即位于CPU寄存器和主存储器上的执行数据操作的软件。
本部分从介绍RISC-V ISA的基本元素开始,包括数据类型、寄存器和指令。
然后,展示了如何使用RISC-V指令来实现基本的控制流语句,比如条件和循环。
最后,介绍了程序堆栈,展示了如何实现例程,并讨论了ABI元素,以及如何促进软件合成。
本书这一部分的所有例子都依赖于系统调用来执行I/O操作。
第三部分:系统级编程
着重于系统级编程,包括与外设的交互和保护系统免受错误或恶意用户程序的攻击。
首先,介绍如何编写代码来直接与输入和输出硬件设备进行交互,以及忙等待(busy waiting)概念。
然后,激发出对硬件中断的要求,展示如何在RISC-V isa上对它们进行编程。
最后,讨论了特权级别,以及如何使用软件中断和异常来保护RISC-V系统免受错误或恶意用户程序的攻击。
与其他RISC-V书籍的主要区别
虽然其他RISC-V书籍侧重于ISA设计决策和细节,但本书侧重于教授汇编编程。
目标受众
这本书针对具有使用高级语言进行计算机编程的基础知识,并想学习汇编编程的人而写的。
书刊链接: