匯編語言(基于64位ARMv8體系結(jié)構(gòu))
定 價:59.8 元
當前圖書已被 30 所學校薦購過!
查看明細
- 作者:錢曉捷
- 出版時間:2022/9/1
- ISBN:9787121443718
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP313
- 頁碼:244
- 紙張:
- 版次:01
- 開本:16開
本書基于ARMv8體系結(jié)構(gòu)、在Linux平臺使用GCC編譯套件,介紹64位ARM指令集和匯編語言,內(nèi)容包括匯編語言基礎知識,AArch64編程結(jié)構(gòu),整數(shù)處理、存儲器訪問、分支和調(diào)用基礎指令,匯編語言分支、循環(huán)和子程序結(jié)構(gòu),以及浮點數(shù)據(jù)處理指令、SIMD向量數(shù)據(jù)處理指令等。本書主要面向高等學校計算機、電子、通信及自動控制等信息技術類專業(yè)學生,可以作為“匯編語言”或“計算機系統(tǒng)原理”等課程的教材或參考書,也適合ARMv8體系結(jié)構(gòu)的專業(yè)技術人員、應用開發(fā)人員,以及希望學習64位ARMv8體系結(jié)構(gòu)的普通讀者和培訓班學員。
錢曉捷,男,鄭州大學計算機軟件與理論專業(yè)碩士學位,碩士生導師,中國計算機學會會員,現(xiàn)任河南省計算機學會教育專委副主任,主要從事計算機系統(tǒng)結(jié)構(gòu)、嵌入式系統(tǒng)、計算機輔助教學等方面的研究。
目 錄
第1章 匯編語言基礎 1
1.1 計算機系統(tǒng)概述 1
1.1.1 計算機硬件組成 1
1.1.2 處理器的發(fā)展 3
1.1.3 ARM處理器 6
1.2 64位ARMv8編程結(jié)構(gòu) 9
1.2.1 ARMv8結(jié)構(gòu)基礎 9
1.2.2 ARMv8寄存器 11
1.2.3 ARMv8存儲器模型 15
1.3 64位ARM匯編語言 17
1.3.1 ARM指令集 18
1.3.2 匯編語言程序 21
1.3.3 匯編語言開發(fā) 28
習題1 32
第2章 整型數(shù)據(jù)處理 36
2.1 數(shù)據(jù)傳送 36
2.1.1 寄存器傳送指令 36
2.1.2 立即數(shù)傳送指令 37
2.2 加減運算 39
2.2.1 加減指令 39
2.2.2 帶進位的加減指令 42
2.2.3 設置標志的加減指令 42
2.3 乘除運算 44
2.3.1 乘法指令 44
2.3.2 除法指令 45
2.3.3 乘加和乘減指令 46
2.4 位操作 46
2.4.1 邏輯運算指令 46
2.4.2 移位指令 49
2.4.3 位段操作指令 50
2.5 存儲器訪問 53
2.5.1 存儲器尋址方式 53
2.5.2 載入和存儲指令 56
2.5.3 成對載入和存儲指令 58
2.5.4 地址生成指令 60
習題2 64
第3章 分支和循環(huán)程序 69
3.1 分支指令 69
3.1.1 無條件分支 69
3.1.2 條件分支 70
3.1.3 條件選擇 72
3.1.4 條件比較 74
3.2 分支程序 74
3.2.1 單分支結(jié)構(gòu) 74
3.2.2 雙分支結(jié)構(gòu) 77
3.2.3 多分支結(jié)構(gòu) 79
3.3 循環(huán)程序 81
3.3.1 計數(shù)控制循環(huán) 82
3.3.2 條件控制循環(huán) 84
3.3.3 多重循環(huán) 88
習題3 90
第4章 模塊化程序設計 94
4.1 子程序及其調(diào)用 94
4.1.1 調(diào)用與返回指令 94
4.1.2 調(diào)用規(guī)范 96
4.1.3 模塊化方法 109
4.2 與C語言的混合編程 115
4.2.1 模塊連接 115
4.2.2 嵌入?yún)R編 116
4.3 Linux系統(tǒng)功能調(diào)用 118
4.3.1 調(diào)用方法 119
4.3.2 調(diào)用示例 120
4.4 A64系統(tǒng)類指令 122
4.4.1 A64系統(tǒng)控制指令 123
4.4.2 A64特殊存儲器訪問指令 125
習題4 128
第5章 浮點數(shù)據(jù)處理 131
5.1 浮點數(shù)據(jù)類型 131
5.1.1 IEEE浮點數(shù)據(jù)格式 131
5.1.2 ARMv8浮點數(shù)據(jù)格式 136
5.1.3 浮點寄存器 138
5.2 浮點數(shù)據(jù)的存儲器訪問 140
5.3 浮點數(shù)據(jù)的傳送和轉(zhuǎn)換 142
5.3.1 浮點傳送指令 142
5.3.2 浮點格式轉(zhuǎn)換指令 145
5.4 浮點數(shù)據(jù)的運算和比較 149
5.4.1 浮點算術運算指令 149
5.4.2 浮點比較和條件選擇指令 152
習題5 158
第6章 SIMD數(shù)據(jù)處理 162
6.1 ARMv8的SIMD數(shù)據(jù)類型 162
6.1.1 向量數(shù)據(jù)和向量寄存器 162
6.1.2 SIMD數(shù)據(jù)操作 164
6.2 SIMD數(shù)據(jù)的存儲器訪問 166
6.2.1 存儲器的尋址方式 166
6.2.2 向量元素的訪問方式 167
6.3 SIMD數(shù)據(jù)的傳送和轉(zhuǎn)換 171
6.3.1 SIMD數(shù)據(jù)傳送指令 171
6.3.2 SIMD數(shù)據(jù)格式轉(zhuǎn)換指令 174
6.4 SIMD數(shù)據(jù)的運算和比較 176
6.4.1 SIMD整數(shù)運算指令 176
6.4.2 SIMD浮點運算指令 181
6.4.3 SIMD比較及條件設置指令 184
6.5 SIMD數(shù)據(jù)的特色處理 186
6.5.1 SIMD變體指令 186
6.5.2 SIMD專用指令 199
6.6 SIMD指令的編程應用 203
習題6 205
附錄A 調(diào)試程序GDB 210
A.1 常規(guī)操作 210
A.2 調(diào)試示例 215
A.3 常用命令 224
附錄B A64指令集 226
B.1 A64基礎指令集 226
B.2 A64先進SIMD指令集 229
附錄C AS匯編程序主要指示符 234
參考文獻 235