彙編程式設計與計算機體系結構:軟體工程師教程

彙編程式設計與計算機體系結構:軟體工程師教程

《彙編程式設計與計算機體系結構:軟體工程師教程》是2019年4月1日機械工業出版社出版的圖書,作者是[美] 布萊恩·R.、霍爾(BrianR.Hall)、凱文·J.斯郎迦(Kevin J.Slonka)。

基本介紹

  • 中文名:彙編程式設計與計算機體系結構:軟體工程師教程
  • 作者:[美] 布萊恩·R.、霍爾(BrianR.Hall)、凱文·J.斯郎迦( Kevin J.Slonka)
  • 出版社:機械工業出版社
  • ISBN:9787111615163
內容簡介,圖書目錄,

內容簡介

本書通過大量實例,循序漸進地講解了彙編語言的各種套用方式,並直觀地演示了怎樣把彙編語言同高級語言結合,以製作出充分發揮硬體特性的程式。書中以x86與x86_64這兩種主流架構為重點,兼顧AT&T及Intel語法,並適用於GAS、NASM及MASM這三種常見的彙編器,以及Linux、macOS及Windows這三種常用的作業系統,這使得身處各種開發環境中的軟體工程師都能在書里找到可以直接運用的解決方案,並了解如何將其移植到其他環境。

圖書目錄

出版者的話
譯者序
前言
第1章 程式語言及數據的
基礎知識 1
1.1 開篇語 1
1.2 簡介 3
1.3 計算機程式語言 3
1.3.1 語言之間的關係 3
1.3.2 翻譯流水線 3
1.3.3 程式語言與相應檔案及編程工具之間的關係 6
1.3.4 為什麼要學習彙編語言 7
1.4 數據的表示 8
1.4.1 計數系統 8
1.4.2 怎樣表示整數 8
1.4.3 怎樣表示無符號的整數 9
1.4.4 怎樣表示帶符號的整數 12
1.4.5 怎樣保存字元 14
1.5 布爾表達式 16
1.6 3位計算機示例 17
1.7 小結 18
1.8 關鍵術語 18
1.9 代碼回顧 19
1.10 習題 20
1.11 作業 21
第2章 處理器與計算機系統體系結構 22
2.1 簡介 22
2.2 體系結構概述 22
2.3 處理器 26
2.3.1 快取與暫存器 27
2.3.2 64 位處理器 31
2.3.3 指令的執行 31
2.3.4 指令流水線 32
2.4 輸入與輸出 33
2.5 小結 35
2.6 關鍵術語 35
2.7 習題 36
2.8 作業 37
第1章與第2章補充材料 與體系結構有關的更多細節 38
第3章 彙編語言及其語法的基礎知識 41
3.1 簡介 41
3.2 基本元素 42
3.2.1 彙編代碼的五大支柱 42
3.2.2 字面量 46
3.2.3 標籤與注釋 48
3.3 定義數據 49
3.4 寫出能夠正常運行的範例程式 55
3.5 小結 56
3.6 關鍵術語 56
3.7 代碼回顧 57
3.8 習題 57
3.9 作業 58
第4章 基本指令 60
4.1 簡介 60
4.2 數據的移動與算術運算 61
4.2.1 移動數據 61
4.2.2 加法與減法 62
4.2.3 乘法與除法 64
4.2.4 移位 69
4.2.5 處理負值 71
4.3 數據的定址與傳輸 72
4.3.1 數據對齊 72
4.3.2 數據定址 73
4.3.3 數組 75
4.3.4 改變數據的大小及類型 78
4.4 小結 79
4.5 關鍵術語 80
4.6 代碼回顧 80
4.7 習題 81
4.8 作業 81
第 5 章 中級指令 83
5.1 簡介 83
5.2 按位執行的布爾運算 83
5.3 分支 88
5.3.1 無條件跳轉 88
5.3.2 有條件跳轉 88
5.3.3 複合條件 91
5.4 重複執行 92
5.4.1 用 CX/ECX/RCX 計數器實現循環 92
5.4.2 用開發者自定義的計數器實現循環 94
5.5 小結 97
5.6 關鍵術語 97
5.7 代碼回顧 97
5.8 習題 98
5.9 作業 99
第 6 章 函式 100
6.1 簡介 100
6.2 棧記憶體入門 100
6.3 x86 與 x86_64 的調用約定 101
6.3.1 cdecl(32 位) 102
6.3.2 stdcall(32 位) 109
6.3.3 x86_64(64 位) 110
6.3.4 有用的細節 114
6.4 實現 114
6.5 小結 118
6.6 關鍵術語 118
6.7 重要的暫存器(32 位和64 位) 118
6.8 代碼回顧 119
6.9 與平台有關的注意事項 119
6.10 習題 120
6.11 作業 120
第6章補充材料 程式 6-3 122
第7章 與字元串有關的指令及結構體 123
7.1 簡介 123
7.2 輔助指令 123
7.3 基本字元串指令 125
7.3.1 MOVS 125
7.3.2 CMPS 126
7.3.3 SCAS 129
7.3.4 STOS 131
7.3.5 LODS 132
7.4 結構體 133
7.5 小結 135
7.6 關鍵術語 135
7.7 代碼回顧 135
7.8 習題 136
7.9 作業 137
第8章 浮點運算 138
8.1 簡介 138
8.2 浮點數的表示方式 139
8.2.1 IEEE表示法 139
8.2.2 特殊值 141
8.2.3 次正規數 141
8.2.4 捨入 142
8.3 浮點數的實現 143
8.3.1 x87 143
8.3.2 MMX——題外話 152
8.3.3 SSE 154
8.3.4 XOP、FMA3/4、F16C——分化 159
8.3.5 AVX 160
8.4 小結 161
8.5 關鍵術語 162
8.6 重要的暫存器(32位和64位) 162
8.7 代碼回顧 162
8.8 習題 164
8.9 作業 165
第8章補充材料 第8章中的程式 167
第9章 內聯彙編與宏 177
9.1 簡介 177
9.2 內聯彙編 177
9.2.1 與編譯器有關的細節 178
9.2.2 內聯式的彙編語句 178
9.2.3 為各種彙編方言提供支持 184
9.2.4 注意事項 185
9.3 宏 186
9.3.1 對比宏與函式 186
9.3.2 定義並調用宏 186
9.4 小結 188
9.5 關鍵術語 188
9.6 習題 188
9.7 作業 189
第10章 與處理器及體系結構有關的高級話題 191
10.1 簡介 191
10.2 處理器與系統的機能 192
10.2.1 系統暫存器 192
10.2.2 處理器模式 193
10.2.3 記憶體模型 193
10.2.4 代碼範例 197
10.3 中斷與系統調用 198
10.3.1 軟體中斷 198
10.3.2 硬體中斷 204
10.3.3 通過INT進行系統調用(舊方法) 204
10.3.4 通過SYSENTER、SYSCALL及程式庫/API進行系統調用(新方法) 207
10.4 小結 214
10.5 關鍵術語 215
10.6 代碼回顧 216
10.7 習題 216
10.8 作業 217
第10章補充材料 第10章中的程式和資源 218
第11章 其他架構 223
11.1 簡介 223
11.2 CISC與RISC 224
11.3 更多架構 225
11.3.1 ARM 225
11.3.2 AVR 228
11.3.3 RISC-V 231
11.3.4 System-z/Architecture 233
11.4 量子架構 234
11.5 小結 236
11.6 關鍵術語 236
11.7 習題

相關詞條

熱門詞條

聯絡我們