匯編語言(基于64位ARMv8體系結(jié)構(gòu))
定 價:59.8 元
- 作者:錢曉捷
- 出版時間:2022/9/1
- ISBN:9787121443718
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP313
- 頁碼:244
- 紙張:
- 版次:01
- 開本:16開
本書基于ARMv8體系結(jié)構(gòu)、在Linux平臺使用GCC編譯套件,介紹64位ARM指令集和匯編語言,內(nèi)容包括匯編語言基礎(chǔ)知識,AArch64編程結(jié)構(gòu),整數(shù)處理、存儲器訪問、分支和調(diào)用基礎(chǔ)指令,匯編語言分支、循環(huán)和子程序結(jié)構(gòu),以及浮點(diǎn)數(shù)據(jù)處理指令、SIMD向量數(shù)據(jù)處理指令等。本書主要面向高等學(xué)校計算機(jī)、電子、通信及自動控制等信息技術(shù)類專業(yè)學(xué)生,可以作為“匯編語言”或“計算機(jī)系統(tǒng)原理”等課程的教材或參考書,也適合ARMv8體系結(jié)構(gòu)的專業(yè)技術(shù)人員、應(yīng)用開發(fā)人員,以及希望學(xué)習(xí)64位ARMv8體系結(jié)構(gòu)的普通讀者和培訓(xùn)班學(xué)員。
錢曉捷,男,鄭州大學(xué)計算機(jī)軟件與理論專業(yè)碩士學(xué)位,碩士生導(dǎo)師,中國計算機(jī)學(xué)會會員,現(xiàn)任河南省計算機(jī)學(xué)會教育專委副主任,主要從事計算機(jī)系統(tǒng)結(jié)構(gòu)、嵌入式系統(tǒng)、計算機(jī)輔助教學(xué)等方面的研究。
目 錄
第1章 匯編語言基礎(chǔ) 1
1.1 計算機(jī)系統(tǒng)概述 1
1.1.1 計算機(jī)硬件組成 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)基礎(chǔ) 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
習(xí)題1 32
第2章 整型數(shù)據(jù)處理 36
2.1 數(shù)據(jù)傳送 36
2.1.1 寄存器傳送指令 36
2.1.2 立即數(shù)傳送指令 37
2.2 加減運(yùn)算 39
2.2.1 加減指令 39
2.2.2 帶進(jìn)位的加減指令 42
2.2.3 設(shè)置標(biāo)志的加減指令 42
2.3 乘除運(yùn)算 44
2.3.1 乘法指令 44
2.3.2 除法指令 45
2.3.3 乘加和乘減指令 46
2.4 位操作 46
2.4.1 邏輯運(yùn)算指令 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
習(xí)題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
習(xí)題3 90
第4章 模塊化程序設(shè)計 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
習(xí)題4 128
第5章 浮點(diǎn)數(shù)據(jù)處理 131
5.1 浮點(diǎn)數(shù)據(jù)類型 131
5.1.1 IEEE浮點(diǎn)數(shù)據(jù)格式 131
5.1.2 ARMv8浮點(diǎn)數(shù)據(jù)格式 136
5.1.3 浮點(diǎn)寄存器 138
5.2 浮點(diǎn)數(shù)據(jù)的存儲器訪問 140
5.3 浮點(diǎn)數(shù)據(jù)的傳送和轉(zhuǎn)換 142
5.3.1 浮點(diǎn)傳送指令 142
5.3.2 浮點(diǎn)格式轉(zhuǎn)換指令 145
5.4 浮點(diǎn)數(shù)據(jù)的運(yùn)算和比較 149
5.4.1 浮點(diǎn)算術(shù)運(yùn)算指令 149
5.4.2 浮點(diǎn)比較和條件選擇指令 152
習(xí)題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ù)的運(yùn)算和比較 176
6.4.1 SIMD整數(shù)運(yùn)算指令 176
6.4.2 SIMD浮點(diǎn)運(yùn)算指令 181
6.4.3 SIMD比較及條件設(shè)置指令 184
6.5 SIMD數(shù)據(jù)的特色處理 186
6.5.1 SIMD變體指令 186
6.5.2 SIMD專用指令 199
6.6 SIMD指令的編程應(yīng)用 203
習(xí)題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基礎(chǔ)指令集 226
B.2 A64先進(jìn)SIMD指令集 229
附錄C AS匯編程序主要指示符 234
參考文獻(xiàn) 235