汇编语言编程基础:基于LoongArchpdf电子书下载

简介: 本书是龙芯自主指令集的汇编语言教程,系统讲解龙芯处理器全新的自主指令系统架构LoongArch。

内容提要

汇编语言是人和计算机沟通的最直接的方式,它描述了机器最终所要执行的指令序列。汇编语言和机器语言一样都是和计算机体系架构强绑定的低级语言。本书是龙芯自主指令集的首本汇编语言教程,系统讲解龙芯处理器全新的自主指令系统架构LoongArch。

本书循序渐进地介绍基于LoongArch的汇编语言知识,包括计算机语言、使用汇编语言的场景等基础知识,寄存器、指令集、函数调用等汇编语言的核心内容,以及编写程序示例和常用的调试手段。本书并不是逐条地讲解每一条指令的功能,而是通过关键指令的拆解来介绍计算机工作的基本原理,同时恰当地指出LoongArch的特殊之处,便于读者理解、实践、应用LoongArch。

本书非常适合基于龙芯架构的工程技术人员学习参考,也可作为从事计算机体系架构或计算机系统设计的工程技术人员的参考书,还可用作大学计算机专业的延伸阅读资料。本书的读者应具备以下基础:具有计算机的使用经验,具有计算机基础知识,具有一门高级语言(C、Java、Python等)的基本编程基础知识。

前言

掌握好一类汇编语言的使用需要涉及多方面的知识,例如基本的信息表示和处理、处理器的体系架构、存储器的层次结构、程序的生命周期和编译过程,而不仅限于汇编语言本身。对于如此多的知识点,一本书很难做到面面俱到。本书的重点是介绍龙芯汇编语言的使用,围绕如何使用龙芯汇编语言编写程序展开讲解,并扩展介绍部分处理器体系架构、程序编译过程、程序调试工具等相关知识。对于汇编语言涉及的信息表示和处理,例如最基本的二进制和十六进制表示、进制间的转换、基本数学运算、逻辑运算等,本书没有做专门的讲解。因此,本书适合对计算机基础理论有一定了解的读者。对于缺少相关知识的读者,我建议通过其他课程或教材进行学习。

本书第01~04章重点介绍汇编语言的概念和龙芯基础指令集LoongArch,具体包括汇编语言的概念及其使用场景、LoongArch指令特性、C语言到Loon-gArch指令的编译过程、LoongArch基础整数指令集和LoongArch基础浮点数指令集。龙芯官方发布的龙芯架构参考手册已经对每一条指令的使用都做了单独的功能解释。本书在此基础上,聚焦指令集中整数指令集和浮点数指令集的使用,而且在每一章都穿插了很多示例,以此希望读者可以快速入门龙芯汇编语言。

本书第05~08章重点介绍LoongArch ABI和汇编程序的编写,具体包括整型寄存器和浮点寄存器的使用约定、函数调用约定和栈布局、目标文件的格式、汇编源程序和内嵌汇编的基本语法和编写示例。如果读者希望能够无障碍地阅读汇编程序,甚至能独立编写正确且健壮的汇编程序,那么这部分的知识是必须理解和掌握的。因为这部分内容的工程性很强,所以希望读者在学习此部分的过程中多动手实践,从而更深刻地理解相关内容。

本书第09~10章重点介绍汇编程序的调试手段和程序的性能优化,具体包括程序功能调试工具GDB、程序性能分析工具perf的使用、常见汇编性能优化手段。这部分对上述调试工具的使用仅是概要性的介绍,因为每一类工具的具体使用命令参数非常多,在平时工作中我们也很难全部用到。读者在实际工作如有需要,我建议多多使用工具的帮助文档进行了解。汇编程序的性能优化可以说是涉及的知识面最广、难度最大的一部分。本书尽量对这部分涉及的相关体系架构知识进行简单直白的介绍,并对常见的优化手段、向量指令、指令融合、指令调度、循环展开等进行讲解。

最后,建议读者在阅读本书或实际工作中,常备龙芯官方发布的龙芯架构参考手册,以对使用的每条汇编指令有清晰的认识。如果读者希望对LoongAr-ch指令集有更深入的了解,我推荐阅读《深入理解计算机系统》以及龙芯团队编写的《计算机体系结构 第2版》和《计算机体系结构基础 第3版》。

版权:人民邮电出版社