基本信息
定價:39元
作者:文全剛張平
書號:978-7-5124-0187
配盤:光碟
出版日期:201008
開本:787×10921/16開
字數:515千字
內容簡介
隨著嵌入式技術的發展,越來越需要一套很好的嵌入式系列教材。本書是學習嵌入式技術的入門教材,是學習嵌入式系統原理與接口技術、嵌入式系統設計與套用等知識的前導教材。
本書基於ARM體系結構進行彙編語言的教學。全書的內容分成三個部分:第一部分主要介紹彙編語言程式設計的基礎知識和ARM系列微處理器,包括第1、2章;第二部分主要介紹基於ARM體系結構的指令系統,彙編程式設計,以及異常中斷編程,包括第3、4、5章;第三部分主要是MDK集成開發環境的使用和ARM彙編語言程式實驗,包括第6、7章。書中含光碟1張,內含相關章節程式原始碼及其他相關資料。
本書可作為高等院校計算機及相關專業本科生和專科生的彙編語言程式設計課程的教材或參考書,也可供使用彙編語言的工程技術人員參考。
目錄
第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統一代碼11
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定點數與浮點數23
1.5基本邏輯運算24
1.5.1與運算24
1.5.2或運算25
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.2ARM概述39
2.2.1計算機體系結構的分類39
2.2.2ARM技術的發展過程40
2.3ARM核心的特點45
2.3.1RISC技術45
2.3.2流水線技術45
2.3.3超標量技術46
2.4基於ARM核的微處理器47
2.4.1基於ARM核的硬體結構47
2.4.2ARM核的數據流模型48
2.4.3ARM處理器工作模式和工作狀態49
2.5ARM暫存器50
2.5.1通用暫存器50
2.5.2狀態暫存器52
2.5.3Thumb暫存器55
2.6ARM的存儲系統簡介56
2.6.1存儲器的層次結構56
2.6.2數據類型與存儲器格式58
2.6.3非對齊的存儲器訪問59
習題二60
第3章ARM指令系統61
3.1指令基礎61
3.1.1程式設計語言的層次結構61
3.1.2指令周期和時序62
3.1.3程式的執行過程64
3.2ARM彙編語言65
3.2.1指令和指令格式65
3.2.2指令的可選後綴66
3.2.3指令的條件執行67
3.2.4ARM指令分類69
3.3ARM指令的定址方式69
3.3.1立即數定址70
3.3.2暫存器定址70
3.3.3暫存器間接定址70
3.3.4暫存器移位定址71
3.3.5基址變址定址71
3.3.6多暫存器定址72
3.3.7相對定址72
3.3.8堆疊定址73
3.4數據處理指令73
3.4.1數據傳送指令75
3.4.2移位操作75
3.4.3算術指令79
3.4.4邏輯運算指令83
3.4.5比較指令84
3.4.6乘法指令86
3.5數據載入與存儲指令89
3.5.1數據載入與存儲指令概述89
3.5.2單暫存器載入與存儲指令92
3.5.3多暫存器載入與存儲指令98
3.5.4堆疊操作102
3.5.5交換指令104
3.6分支指令106
3.6.1分支指令B106
3.6.2帶返回的分支指令BL107
3.6.3帶狀態切換的分支指令BX108
3.6.4帶返回和狀態切換的分支指令BLX109
3.7程式狀態暫存器訪問指令110
3.8協處理器指令112
3.9軟體中斷指令116
3.10ARM偽指令118
3.11Thumb指令集121
3.11.1概述121
3.11.2Thumb指令暫存器的使用123
3.11.3ARM
3.11.4數據處理指令126
3.11.5單暫存器載入和存儲指令128
3.11.6多暫存器載入和存儲指令129
3.11.7堆疊指令130
3.11.8軟體中斷指令130
3.12Thumb偽指令131
習題三132
第4章ARM彙編語言程式設計134
4.1彙編語言程式格式134
4.1.1彙編語言的基本概念134
4.1.2彙編語言源程式的組成135
4.1.3彙編語言程式中常用的符號138
4.1.4彙編語言程式中的表達式和運算符140
4.2ARM彙編器的偽操作143
4.2.1符號定義偽操作144
4.2.2數據定義偽操作146
4.2.3彙編控制偽操作150
4.2.4信息報告偽操作153
4.2.5其他常用的偽操作155
4.3彙編語言程式的上機過程161
4.3.1彙編語言上機環境161
4.3.2編輯彙編語言源程式162
4.3.3編譯連結源程式164
4.3.4調試彙編程式165
4.4彙編語言程式設計166
4.4.1程式設計步驟166
4.4.2簡單程式設計167
4.4.3分支程式設計168
4.4.4循環程式設計172
4.4.5子程式設計177
4.4.6彙編程式舉例178
4.5工作模式切換編程181
4.5.1處理器模式181
4.5.2處理器工作模式切換編程182
4.6ATPCS介紹183
4.6.1暫存器的使用規則183
4.6.2數據棧使用規則184
4.6.3參數傳遞規則186
4.6.4ARM和Thumb程式混合使用的ATPCS186
4.7ARM和Thumb混合編程187
4.7.1工作狀態187
4.7.2工作狀態切換編程188
4.8彙編語言和C語言互動編程192
4.8.1彙編程式訪問C程式變數192
4.8.2彙編程式調用C程式193
4.8.3C程式內嵌彙編指令194
4.8.4C程式調用彙編程式200
習題四201
第5章 異常中斷編程204
5.1ARM的異常和中斷204
5.1.1異常和中斷的基本概念204
5.1.2ARM的異常中斷205
5.1.3向量表206
5.1.4異常的優先權別208
5.2ARM異常中斷的處理過程209
5.2.1異常中斷回響過程209
5.2.2異常中斷的返回211
5.3復位處理程式215
5.3.1復位215
5.3.2復位處理編程215
5.4SWI異常中斷處理程式218
5.4.1SWI異常中斷處理程式的實現218
5.4.2SWI異常中斷調用221
5.5FIQ和IRQ異常中斷處理程式227
5.5.1IRQ/FIQ中斷處理機制227
5.5.2IRQ/FIQ異常中斷處理程式229
5.5.3IRQ異常中斷處理程式舉例232
5.6未定義指令異常中斷233
習題五234
第6章 RealView MDK軟體的使用235
6.1嵌入式系統開發基礎235
6.1.1嵌入式系統開發流程235
6.1.2嵌入式軟體開發236
6.1.3RealViewMDK軟體的簡介239
6.1.4RealViewMDK軟體的安裝241
6.2μVision集成開發環境介紹245
6.2.1工程工作區247
6.2.2工作區250
6.2.3輸出視窗251
6.2.4選單欄、工具列和快捷鍵252
6.2.5軟體開發流程256
6.3程式的編輯257
6.3.1工程項目創建259
6.3.2源檔案的創建261
6.3.3工程項目管理263
6.3.4工程基本配置263
6.4程式的編譯與連結268
6.4.1基本概念268
6.4.2連結器的基本功能271
6.4.3分散載入描述檔案275
6.4.4編譯連結配置276
6.4.5編譯連結工程279
6.5程式的調試280
6.5.1調試模式280
6.5.2調試前的配置280
6.5.3調試器的使用282
6.5.4調試視窗和對話框283
6.5.5Flash編程工具293
6.5.6調試命令和變數295
6.5.7調試函式簡介300
6.5.8調試腳本的使用305
6.5.9調試信息和去除方法307
6.5.10映像檔案轉換器fromELF308
習題六309
第7章ARM彙編語言程式實驗310
7.1ARM彙編的上機過程310
7.2ARM定址方式316
7.3數據處理指令321
7.4數據載入與存儲指令324
7.5ARM分支指令330
7.6ARM彙編程式設計一334
7.7ARM彙編程式設計二339
7.8工作模式的切換343
7.9ARM彙編和C語言混合編程347
7.10異常中斷編程353
參考文獻355
前言
以ARM為核心的嵌入式技術逐漸成為我國嵌入式教學的主流,五年前我們就規劃了嵌入式方向的系列教材,包括《彙編語言程式設計》、《嵌入式系統接口原理與套用》、《嵌入式Linux作業系統原理與套用》、《嵌入式系統原理與套用》。在這個系列教材中,《彙編語言程式設計》是學習嵌入式技術的入門教材。
三年時間過去了,無論是硬體還是開發平台都發生了翻天覆地的變化,相比第一版,第二版主要有如下變化:
1.對第一版中進行了修訂,如圖表、文字、公式中出現的一些問題。
2.增加了ARM架構方面新的內容,如ARMv6、ARMv7方面的介紹。
3.重新編寫了第6章,將原來的ADS開發平台換成了RealViewMDK集成開發環境。MDK支持的CortexM3核,是ARM公司最新推出的針對微控制器套用的核心,它提供業界領先的高性能和低成本的解決方案,未來幾年將成為MCU套用的熱點和主流。目前,國內只有MDK和rvds開發工具可以支持CortexM3晶片的套用開發。MDK的編譯器與ADS1.2比較,代碼更小,性能更高。在代碼密度方面,比ADS1.2編譯的代碼尺寸小10%;在代碼性能方面,比ADS1.2編譯的代碼性能高20%。
4.重新編寫了第7章,每個實驗與具體硬體平台無關,都在MDK集成開發環境中通過軟體模擬來實現。通過學習者能掌握MDK開發環境的使用,掌握ARM彙編語言程式設計的編輯、編譯、連結和調試過程。
本書在編寫的過程中得到了北京航空航天大學何立民教授、北京航空航天大學出版社馬廣雲博士的很多幫助和鼓勵。本書的出版也得到了吉林大學珠海學院各級領導的大力支持。我的同事張榮高、紀緒、王藝璇等也為本書做出了很大貢獻。在此一併表示誠摯的謝意。本書成書倉促,作者水平有限,錯誤和不足之處在所難免,謹請讀者和同行專家批評指教。
有興趣的讀者,可以傳送電子郵件到:[email protected],與作者進一步交流;也可以傳送電子郵件到[email protected],與本書策劃編輯進行交流。