內容簡介
匯編語言程序設計—基於ARM體係結構(第3版)
本書是學習嵌入式技術的入門教材,是學習嵌入式係統原理與接口技術、嵌入式係統設計與應用等知識的前導教材。
本書基於ARM體係結構進行匯編語言的教學。全書的內容分成3個部分:第一部分主要介紹匯編語言程序設計的基礎知識和ARM係列微處理器,包括第1、2章;第二部分主要介紹基於ARM體係結構的指令係統、匯編程序設計以及異常中斷編程,包括第3、4、5章;第三部分主要是MDK集成開發環境的使用和ARM匯編語言程序實驗,包括第6、7章。本書是再版書,相比第2版,本書修訂瞭舊版的一些錯誤,並更新瞭部分內容。
本書配套資料包含相關章節程序源代碼及其他相關資料,讀者可以到北京航空航天大學齣版社網站的“下載專區”免費下載。
本書可作為高等院校計算機及相關專業的匯編語言程序設計課程的教材或參考書,也可供使用匯編語言的工程技術人員參考。
目錄
第1章 基礎知識……………………………………………………………………… 1
1.1 數製與數製轉換……………………………………………………………… 1
1.1.1 數製的基本概念………………………………………………………… 1
1.1.2 二進製數………………………………………………………………… 2
1.1.3 十進製和二進製之間的轉換…………………………………………… 3
1.1.4 二進製和其他進製之間的轉換………………………………………… 4
1.2 二進製數的基本運算………………………………………………………… 5
1.3 計算機中的編碼……………………………………………………………… 6
1.3.1 數字的編碼……………………………………………………………… 6
1.3.2 字符的編碼……………………………………………………………… 7
1.3.3 漢字的編碼……………………………………………………………… 8
1.3.4 統一代碼………………………………………………………………… 10
1.3.5 語音編碼………………………………………………………………… 11
1.3.6 差錯控製編碼…………………………………………………………… 12
1.4 計算機中有符號數的錶示…………………………………………………… 18
1.4.1 機器數與真值…………………………………………………………… 18
1.4.2 原碼、反碼與補碼……………………………………………………… 19
1.4.3 補碼的加法運算………………………………………………………… 21
1.4.4 定點數與浮點數………………………………………………………… 22
1.5 基本邏輯運算………………………………………………………………… 24
1.5.1 與運算…………………………………………………………………… 24
1.5.2 或運算…………………………………………………………………… 24
1.5.3 非運算…………………………………………………………………… 25
1.5.4 異或運算………………………………………………………………… 25
習題一…………………………………………………………………………… 26
第2章 ARM 微處理器基礎……………………………………………………… 27
2.1 嵌入式係統概述……………………………………………………………… 27
2.1.1 嵌入式係統的基本概念………………………………………………… 27
2.1.2 嵌入式係統的發展……………………………………………………… 29
2.1.3 嵌入式係統的組成結構………………………………………………… 31
2.1.4 嵌入式處理器…………………………………………………………… 36
2.1.5 典型嵌入式處理器介紹………………………………………………… 38
2.2 ARM 概述…………………………………………………………………… 40
2.2.1 計算機體係結構的分類………………………………………………… 40
2.2.2 ARM 技術的發展過程………………………………………………… 41
2.3 ARM 內核的特點…………………………………………………………… 46
2.3.1 RISC技術……………………………………………………………… 46
2.3.2 流水綫技術……………………………………………………………… 47
2.3.3 超標量技術……………………………………………………………… 48
2.4 基於ARM 核的微處理器………………………………………………… 48
2.4.1 基於ARM 核的硬件結構……………………………………………… 48
2.4.2 ARM 核的數據流模型………………………………………………… 49
2.4.3 ARM 處理器工作模式和工作狀態…………………………………… 50
2.5 ARM 寄存器………………………………………………………………… 51
2.5.1 通用寄存器……………………………………………………………… 52
2.5.2 狀態寄存器……………………………………………………………… 53
2.5.3 Thumb寄存器………………………………………………………… 56
2.6 ARM 的存儲係統簡介……………………………………………………… 57
2.6.1 存儲器的層次結構……………………………………………………… 57
2.6.2 數據類型與存儲器格式………………………………………………… 59
2.6.3 非對齊的存儲器訪問…………………………………………………… 61
習題二……………………………………………………………………………… 62
第3章 ARM 指令係統…………………………………………………………… 63
3.1 指令基礎……………………………………………………………………… 63
3.1.1 程序設計語言的層次結構……………………………………………… 63
3.1.2 指令周期和時序………………………………………………………… 64
3.1.3 程序的執行過程………………………………………………………… 66
3.2 ARM 匯編語言……………………………………………………………… 67
3.2.1 指令和指令格式………………………………………………………… 67
3.2.2 指令的可選後綴………………………………………………………… 68
3.2.3 指令的條件執行………………………………………………………… 69
3.2.4 ARM 指令分類………………………………………………………… 71
3.3 ARM 指令的尋址方式……………………………………………………… 71
3.3.1 立即數尋址……………………………………………………………… 72
3.3.2 寄存器尋址……………………………………………………………… 72
3.3.3 寄存器間接尋址………………………………………………………… 72
3.3.4 寄存器移位尋址………………………………………………………… 73
3.3.5 基址變址尋址…………………………………………………………… 73
3.3.6 多寄存器尋址…………………………………………………………… 74
3.3.7 相對尋址………………………………………………………………… 75
3.3.8 堆棧尋址………………………………………………………………… 75
3.4 數據處理指令………………………………………………………………… 76
3.4.1 數據傳送指令…………………………………………………………… 77
3.4.2 移位操作………………………………………………………………… 77
3.4.3 算術指令………………………………………………………………… 81
3.4.4 邏輯運算指令…………………………………………………………… 85
3.4.5 比較指令………………………………………………………………… 87
3.4.6 乘法指令………………………………………………………………… 88
3.5 數據加載與存儲指令………………………………………………………… 91
3.5.1 數據加載與存儲指令概述……………………………………………… 92
3.5.2 單寄存器加載與存儲指令……………………………………………… 94
3.5.3 多寄存器加載與存儲指令…………………………………………… 100
3.5.4 堆棧操作……………………………………………………………… 104
3.5.5 交換指令……………………………………………………………… 106
3.6 分支指令…………………………………………………………………… 107
3.6.1 分支指令B …………………………………………………………… 108
3.6.2 帶返迴的分支指令BL ……………………………………………… 109
3.6.3 帶狀態切換的分支指令BX ………………………………………… 110
3.6.4 帶返迴和狀態切換的分支指令BLX………………………………… 111
3.7 程序狀態寄存器訪問指令………………………………………………… 112
3.8 協處理器指令……………………………………………………………… 114
3.9 軟件中斷指令……………………………………………………………… 118
3.10 ARM 僞指令……………………………………………………………… 120
3.11 Thumb指令集…………………………………………………………… 122
3.11.1 概 述………………………………………………………………… 122
3.11.2 Thumb指令寄存器的使用………………………………………… 125
3.11.3 ARM??Thumb交互………………………………………………… 125
3.11.4 數據處理指令………………………………………………………… 127
3.11.5 單寄存器加載和存儲指令…………………………………………… 129
3.11.6 多寄存器加載和存儲指令…………………………………………… 130
3.11.7 堆棧指令……………………………………………………………… 131
3.11.8 軟件中斷指令………………………………………………………… 132
3.12 Thumb僞指令…………………………………………………………… 132
習題三…………………………………………………………………………… 133
第4章 ARM 匯編語言程序設計………………………………………………… 135
4.1 匯編語言程序格式………………………………………………………… 135
4.1.1 匯編語言的基本概念………………………………………………… 135
4.1.2 匯編語言源程序的組成……………………………………………… 136
4.1.3 匯編語言程序中常用的符號………………………………………… 139
4.1.4 匯編語言程序中的錶達式和運算符………………………………… 141
4.2 ARM 匯編器的僞操作…………………………………………………… 144
4.2.1 符號定義僞操作……………………………………………………… 145
4.2.2 數據定義僞操作……………………………………………………… 146
4.2.3 匯編控製僞操作……………………………………………………… 151
4.2.4 信息報告僞操作……………………………………………………… 154
4.2.5 其他常用的僞操作…………………………………………………… 156
4.3 匯編語言程序的上機過程………………………………………………… 161
4.3.1 匯編語言上機環境…………………………………………………… 161
4.3.2 編輯匯編語言源程序………………………………………………… 163
4.3.3 編譯鏈接源程序……………………………………………………… 165
4.3.4 調試匯編程序………………………………………………………… 166
4.4 匯編語言程序設計………………………………………………………… 166
4.4.1 程序設計步驟………………………………………………………… 166
4.4.2 簡單程序設計………………………………………………………… 168
4.4.3 分支程序設計………………………………………………………… 169
4.4.4 循環程序設計………………………………………………………… 173
4.4.5 子程序設計…………………………………………………………… 177
4.4.6 匯編程序舉例………………………………………………………… 179
4.5 工作模式切換編程………………………………………………………… 182
4.5.1 處理器模式…………………………………………………………… 182
4.5.2 處理器工作模式切換編程…………………………………………… 182
4.6 ATPCS介紹……………………………………………………………… 183
4.6.1 寄存器的使用規則…………………………………………………… 184
4.6.2 數據棧使用規則……………………………………………………… 185
4.6.3 參數傳遞規則………………………………………………………… 186
4.6.4 ARM 和Thumb程序混閤使用的ATPCS ………………………… 187
4.7 ARM 和Thumb混閤編程………………………………………………… 187
4.7.1 工作狀態……………………………………………………………… 187
4.7.2 工作狀態切換編程…………………………………………………… 189
4.8 匯編語言和C語言交互編程……………………………………………… 192
4.8.1 匯編程序訪問C程序變量…………………………………………… 192
4.8.2 匯編程序調用C程序………………………………………………… 193
4.8.3 C程序內嵌匯編指令………………………………………………… 194
4.8.4 C程序調用匯編程序………………………………………………… 200
習題四…………………………………………………………………………… 201
第5章 異常中斷編程……………………………………………………………… 203
5.1 ARM 的異常和中斷……………………………………………………… 203
5.1.1 異常和中斷的基本概念……………………………………………… 203
5.1.2 ARM 的異常中斷…………………………………………………… 204
5.1.3 嚮量錶………………………………………………………………… 205
5.1.4 異常的優先級彆……………………………………………………… 207
5.2 ARM 異常中斷的處理過程……………………………………………… 208
5.2.1 異常中斷響應過程…………………………………………………… 208
5.2.2 異常中斷的返迴……………………………………………………… 210
5.3 復位處理程序……………………………………………………………… 214
5.3.1 復 位………………………………………………………………… 214
5.3.2 復位處理編程………………………………………………………… 215
5.4 SWI異常中斷處理程序…………………………………………………… 217
5.4.1 SWI異常中斷處理程序的實現……………………………………… 217
5.4.2 SWI異常中斷調用…………………………………………………… 220
5.5 FIQ 和IRQ 異常中斷處理程序…………………………………………… 225
5.5.1 IRQ/FIQ 中斷處理機製……………………………………………… 225
5.5.2 IRQ/FIQ 異常中斷處理程序………………………………………… 228
5.5.3 IRQ 異常中斷處理程序舉例………………………………………… 230
5.6 未定義指令異常中斷……………………………………………………… 231
習題五…………………………………………………………………………… 232
第6章 RealView MDK 軟件的使用……………………………………………… 233
6.1 嵌入式係統開發基礎……………………………………………………… 233
6.1.1 嵌入式係統開發流程………………………………………………… 233
6.1.2 嵌入式軟件開發……………………………………………………… 234
6.1.3 DS開發平颱簡介……………………………………………………… 237
6.1.4 RealView MDK軟件的安裝………………………………………… 238
6.2 μVision集成開發環境介紹……………………………………………… 243
6.2.1 工程工作區…………………………………………………………… 244
6.2.2 工作區………………………………………………………………… 247
6.2.3 輸齣窗口……………………………………………………………… 248
6.2.4 菜單欄、工具欄和快捷鍵……………………………………………… 249
6.2.5 軟件開發流程………………………………………………………… 253
6.3 程序的編輯………………………………………………………………… 254
6.3.1 工程項目創建………………………………………………………… 256
6.3.2 源文件的創建………………………………………………………… 258
6.3.3 工程項目管理………………………………………………………… 259
6.3.4 工程基本配置………………………………………………………… 260
6.4 程序的編譯與鏈接………………………………………………………… 264
6.4.1 基本概念……………………………………………………………… 264
6.4.2 鏈接器的基本功能…………………………………………………… 268
6.4.3 分散加載描述文件…………………………………………………… 272
6.4.4 編譯鏈接配置………………………………………………………… 273
6.4.5 編譯鏈接工程………………………………………………………… 276
6.5 程序的調試………………………………………………………………… 277
6.5.1 調試模式……………………………………………………………… 277
6.5.2 調試前的配置………………………………………………………… 277
6.5.3 調試器的使用………………………………………………………… 279
6.5.4 調試窗口和對話框…………………………………………………… 280
6.5.5 Flash編程工具……………………………………………………… 290
6.5.6 調試命令和變量……………………………………………………… 292
6.5.7 調試函數簡介………………………………………………………… 297
6.5.8 調試腳本的使用…………
匯編語言程序設計—基於ARM 體係結構(第3版) 下載 mobi epub pdf txt 電子書