書名: 匯編語言編程基礎:基于LoongArch作者名: 孫國云 敖琪 王銳本章字數: 1045字更新時間: 2023-03-10 16:38:15
前言
掌握好一類匯編語言的使用需要涉及多方面的知識,例如基本的信息表示和處理、處理器的體系架構、存儲器的層次結構、程序的生命周期和編譯過程,而不僅限于匯編語言本身。對于如此多的知識點,一本書很難做到面面俱到。本書的重點是介紹龍芯匯編語言的使用,圍繞如何使用龍芯匯編語言編寫程序展開講解,并擴展介紹部分處理器體系架構、程序編譯過程、程序調試工具等相關知識。對于匯編語言涉及的信息表示和處理,例如最基本的二進制和十六進制表示、進制間的轉換、基本數學運算、邏輯運算等,本書沒有做專門的講解。因此,本書適合對計算機基礎理論有一定了解的讀者。對于缺少相關知識的讀者,我建議通過其他課程或教材進行學習。
本書第01~04章重點介紹匯編語言的概念和龍芯基礎指令集LoongArch,具體包括匯編語言的概念及其使用場景、LoongArch指令特性、C語言到LoongArch指令的編譯過程、LoongArch基礎整數指令集和LoongArch基礎浮點數指令集。龍芯官方發布的龍芯架構參考手冊已經對每一條指令的使用都做了單獨的功能解釋。本書在此基礎上,聚焦指令集中整數指令集和浮點數指令集的使用,而且在每一章都穿插了很多示例,以此希望讀者可以快速入門龍芯匯編語言。
本書第05~08章重點介紹LoongArch ABI和匯編程序的編寫,具體包括整型寄存器和浮點寄存器的使用約定、函數調用約定和棧布局、目標文件的格式、匯編源程序和內嵌匯編的基本語法和編寫示例。如果讀者希望能夠無障礙地閱讀匯編程序,甚至能獨立編寫正確且健壯的匯編程序,那么這部分的知識是必須理解和掌握的。因為這部分內容的工程性很強,所以希望讀者在學習此部分的過程中多動手實踐,從而更深刻地理解相關內容。
本書第09~10章重點介紹匯編程序的調試手段和程序的性能優化,具體包括程序功能調試工具GDB、程序性能分析工具perf的使用、常見匯編性能優化手段。這部分對上述調試工具的使用僅是概要性的介紹,因為每一類工具的具體使用命令參數非常多,在平時工作中我們也很難全部用到。讀者在實際工作如有需要,我建議多多使用工具的幫助文檔進行了解。匯編程序的性能優化可以說是涉及的知識面最廣、難度最大的一部分。本書盡量對這部分涉及的相關體系架構知識進行簡單直白的介紹,并對常見的優化手段、向量指令、指令融合、指令調度、循環展開等進行講解。
最后,建議讀者在閱讀本書或實際工作中,常備龍芯官方發布的龍芯架構參考手冊,以對使用的每條匯編指令有清晰的認識。如果讀者希望對LoongArch指令集有更深入的了解,我推薦閱讀《深入理解計算機系統》以及龍芯團隊編寫的《計算機體系結構 第2版》和《計算機體系結構基礎 第3版》。
孫國云
2022年10月
- JavaScript+DHTML語法與范例詳解詞典
- 工程軟件開發技術基礎
- Python程序設計(第3版)
- Scala Design Patterns
- 高級C/C++編譯技術(典藏版)
- Mastering LibGDX Game Development
- C程序設計案例教程
- Java Web從入門到精通(第2版)
- Tableau Desktop可視化高級應用
- DB2SQL性能調優秘笈
- HTML5移動Web開發
- Android嵌入式系統程序開發(基于Cortex-A8)
- Learning D3.js 5 Mapping(Second Edition)
- Joomla!Search Engine Optimization
- Building UIs with Wijmo