匯編語言程序設計 -- 基於 ARM 體系結構, 4/e

文全剛

  • 出版商: 北京航空航天大學
  • 出版日期: 2021-01-01
  • 定價: $414
  • 售價: 8.5$352
  • 語言: 簡體中文
  • 頁數: 364
  • 裝訂: 平裝
  • ISBN: 7512433867
  • ISBN-13: 9787512433861
  • 相關分類: ARMAssembly
  • 立即出貨

買這商品的人也買了...

商品描述

本書是學習嵌入式技術的入門教材,是學習嵌入式系統原理與接口技術、嵌入式系統設計與應用等知識的前導教材。

本書基於ARM體系結構進行彙編語言的教學,內容分成3個部分:第一部分主要介紹彙編語言程序設計的基礎知識和ARM系列微處理器,包括第1、2章;第二部分主要介紹基於ARM體系結構的指令系統、彙編程序設計以及異常中斷編程,包括第3、4、5章;第三部分主要是MDK集成開發環境的使用和ARM彙編語言程序實驗,包括第6、7章。本書是再版書,相比舊版,修訂了舊版的一些錯誤,並更新了部分內容。

本書配套資料包含相關章節程序源代碼及其他相關資料,讀者可以到北京航空航天大學出版社網站的“下載專區”免費下載。

目錄大綱

第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.2ARM概述40
2.2.1計算機體系結構的分類40
2.2.2ARM技術的發展過程41
2.2.3ARM技術與人工智能46
2.3ARM內核的特點47
2.3.1RISC技術47
2.3.2流水線技術47
2.3.3超標量技術48
2.4基於ARM核的微處理器49
2.4.2ARM核的數據流模型50
2.4.3ARM處理器工作模式和工作狀態51
2.5ARM寄存器52
2.5.1通用寄存器52
2.5.2狀態寄存器54
2.5.3Thumb寄存器57
2.6ARM的存儲系統簡介58
2.6.1存儲器的層次結構58
2.6.2數據類型與存儲器格式60
2.6.3非對齊的存儲器訪問62
習題二63

第3章ARM指令系統64
3.1指令基礎64
3.1.1程序設計語言的層次結構64
3.1.2指令周期和時序65
3.1.3程序的執行過程67
3.2ARM彙編語言68
3.2.1指令和指令格式68
3.2.2指令的可選後綴69
3.2.3指令的條件執行70
3.2.4ARM指令分類72
3.3ARM指令的尋址方式72
3.3.1立即數尋址73
3.3.2寄存器尋址73
3.3.3寄存器間接尋址73
3.3.4寄存器移位尋址74
3.3.5基址變址尋址74
3.3.6多寄存器尋址75
3.3.7相對尋址76
3.3.8堆棧尋址76
3.4數據處理指令77
3.4.1數據傳送指令78
3.4.2移位操作78
3.4.3算術指令82
3.4.4邏輯運算指令86
3.4.5比較指令87
3.4.6乘法指令89
3.5數據加載與存儲指令92
3.5.1數據加載與存儲指令概述94
3.5.2單寄存器加載與存儲指令95
3.5.3多寄存器加載與存儲指令101
3.5.4堆棧操作105
3.5.5交換指令107
3.6分支指令108
3.6.1分支指令B109
3.6.2帶返回的分支指令BL 110
3.6.3帶狀態切換的分支指令BX111
3.6.4帶返回和狀態切換的分支指令BLX112
3.7程序狀態寄存器訪問指令113
3.8協處理器指令115
3.9軟件中斷指令119
3.10ARM偽指令121
3.11Thumb指令集123
3.11.1概述123
3.11.2Thumb指令寄存器的使用126
3.11.3ARMThumb交互126
3.11.4數據處理指令128
3.11.5單寄存器加載和存儲指令130
3.11.6多寄存器加載和存儲指令131
3.11.7堆棧指令132
3.11.8軟件中斷指令133
3.12Thumb偽指令133
習題三134

第4章ARM彙編語言程序設計136
4.1彙編語言程序格式136
4.1.1彙編語言的基本概念136
4.1.2彙編語言源程序的組成137
4.1.3彙編語言程序中常用的符號140
4.1.4彙編語言程序中的表達式和運算符142
4.2ARM彙編器的偽操作145
4.2.1符號定義偽操作146
4.2.2數據定義偽操作147
4.2.3彙編控制偽操作152
4.2.4信息報告偽操作155
4.2.5其他常用的偽操作157
4.3彙編語言程序的上機過程162
4.3.1彙編語言上機環境162
4.3.2編輯彙編語言源程序164
4.3.3編譯鏈接源程序166
4.3.4調試彙編程序167
4.4彙編語言程序設計167
4.4.1程序設計步驟167
4.4.2簡單程序設計169
4.4.3分支程序設計170
4.4.4循環程序設計174
4.4.5子程序設計178
4.4.6彙編程序舉例180
4.5工作模式切換編程183
4.5.1處理器模式183
4.5.2處理器工作模式切換編程183
4.6ATPCS介紹184
4.6.1寄存器的使用規則185
4.6.2數據棧使用規則186
4.6.3參數傳遞規則187
4.6.4ARM和Thumb程序混合使用的ATPCS188
4.7ARM和Thumb混合編程188
4.7.1工作狀態188
4.7.2工作狀態切換編程190
4.8彙編語言和C語言交互編程193
4.8.1彙編程序訪問C程序變量193
4.8.2彙編程序調用C程序194
4.8.3C程序內嵌彙編指令195
4.8.4C程序調用彙編程序201
習題四202

第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復位處理編程216
5.4SWI異常中斷處理程序218
5.4.1SWI異常中斷處理程序的實現218
5.4.2SWI異常中斷調用221
5.5FIQ和IRQ異常中斷處理程序226
5.5.1IRQ/FIQ中斷處理機制226
5.5.2IRQ/FIQ異常中斷處理程序229
5.5.3IRQ異常中斷處理程序舉例231
5.6未定義指令異常中斷232
習題五233

第6章RealView MDK軟件的使用234
6.1嵌入式系統開發基礎234
6.1.1嵌入式系統開發流程234
6.1.2嵌入式軟件開發235
6.1.3DS開發平台簡介238
6.1.4RealView MDK軟件的安裝239
6.2μVision集成開發環境介紹244
6.2.1工程工作區245
6.2.2工作區248
6.2.3輸出窗口249
6.2.4菜單欄、工具欄和快捷鍵250
6.2.5軟件開發流程254
6.3程序的編輯255
6.3.1工程項目創建257
6.3.2源文件的創建259
6.3.3工程項目管理260
6.3.4工程基本配置261
6.4程序的編譯與鏈接265
6.4.1基本概念265
6.4.2鏈接器的基本功能269
6.4.3分散加載描述文件273
6.4.4編譯鏈接配置274
6.4.5編譯鏈接工程277
6.5程序的調試278
6.5.1調試模式278
6.5.2調試前的配置278
6.5.3調試器的使用280
6.5.4調試窗口和對話框281
6.5.5Flash編程工具291
6.5.6調試命令和變量293
6.5.7調試函數簡介298
6.5.8調試腳本的使用302
6.5.9調試信息和去除方法304
6.5.10映像文件轉換器fromELF305
習題六306

第7章ARM彙編語言程序實驗307
7.1ARM彙編的上機過程307
7.2ARM尋址方式313
7.3數據處理指令318
7.4數據加載與存儲指令321
7.5ARM分支指令326
7.6ARM彙編程序設計一330
7.7ARM彙編程序設計二335
7.8工作模式的切換338
7.9ARM彙編和C語言混合編程343
7.10異常中斷編程348

參考文獻351