本書系統(tǒng)地講解了匯編語言程序設計的相關知識,全書共有11章,系統(tǒng)地論述了匯編語言基礎知識,計算機基本原理,上機操作步驟,操作數(shù)的尋址方式,匯編語言的指令系統(tǒng)和偽指令,匯編語言中分支、循環(huán)和子程序的設計方法,高級匯編語言程序設計,32位匯編指令和MIPS指令系統(tǒng)。為了讓讀者能夠及時地檢查自己的學習效果,把握自己的學習進度,每章后面都附有豐富的習題。 本書既可以作為本科院校、高職高專各專業(yè)匯編語言課程的教材,也可以作為匯編語言培訓或技術人員自學的參考資料。
內(nèi)容精煉,邏輯性和可讀性要求高,編排合理
根據(jù)教學需要,體現(xiàn)價值引領
與時俱進,對上一版的知識進行了更新,章節(jié)進行了優(yōu)化,增加了部分實例,補充了更多的習題
提供了豐富的教學資源,包括視頻、習題、教案、教學大綱、多媒體課件、答案等,方便教學,促進線上線下混合式課程的開展
劉慧婷,2001年至今在安徽大學計算機科學與技術學院執(zhí)教,歷任助教、講師、副教授,為安徽大學青年骨干教師。長期擔任《高級語言程序設計》、《微型計算機系統(tǒng)》、《匯編語言程序設計》、《面向?qū)ο蟪绦蛟O計》等多門本科生課程的教學工作。一直從事數(shù)據(jù)挖掘、人工智能及其相關交叉領域的研究工作,尤其在社交媒體數(shù)據(jù)分析和信息檢索等方面取得了一系列的成果。先后主持和參加包括國家863計劃、國家自然科學基金面上和青年基金、安徽省自然科學基金面上項目等在內(nèi)的10余項國家/省部級項目,已經(jīng)在國際會議和各類期刊發(fā)表論文70余篇,其中包括《Information Sciences》、《計算機學報》、《軟件學報》等核心期刊30余篇,并參與撰寫專著《智能管理技術與方法》、《動態(tài)數(shù)據(jù)挖掘》2部。
第 1章 匯編語言基礎知識 1
1.1 匯編語言簡介 1
1.1.1 程序設計語言發(fā)展歷程 1
1.1.2 計算機指令系統(tǒng) 1
1.1.3 匯編語言的組成 2
1.1.4 為什么要學習匯編語言 2
1.2 計算機中數(shù)據(jù)的表示 3
1.2.1 不同進位計數(shù)制及其相互轉換 3
1.2.2 二進制數(shù)和十六進制數(shù)的運算 5
1.2.3 帶符號數(shù)的補碼表示 6
1.2.4 補碼的加法和減法 7
1.2.5 無符號數(shù)的表示 8
1.2.6 字符的表示 8
1.2.7 基本邏輯運算 9
本章小結 9
習題1 9
第 2章 計算機基本原理 10
2.1 計算機系統(tǒng)組成 10
2.2 CPU中的寄存器 11
2.2.1 16位結構的CPU 11
2.2.2 寄存器介紹 12
2.2.3 CS和IP 15
2.2.4 堆棧 15
2.3 存儲器 16
2.3.1 存儲器 16
2.3.2 存儲器分段 17
2.3.3 邏輯地址 18
2.3.4 CPU對內(nèi)存的讀寫操作 20
2.4 外部設備和接口 21
2.5 32位80x86CPU的工作模式 21
本章小結 22
習題2 22
第3章 匯編語言程序?qū)嵗吧蠙C操作 23
3.1 匯編語言的工作環(huán)境 23
3.1.1 匯編語言的系統(tǒng)工作文件 23
3.1.2 進入?yún)R編環(huán)境方式 23
3.1.3 常用的DOS命令 26
3.2 匯編語言程序?qū)嵗?27
3.3 程序?qū)嵗纳蠙C步驟 28
3.3.1 編輯——建立ASM源程序文件 28
3.3.2 匯編——產(chǎn)生OBJ二進制目標文件 29
3.3.3 連接——產(chǎn)生EXE可執(zhí)行文件 29
3.3.4 LST列表文件 30
3.3.5 程序的運行 32
3.3.6 程序的跟蹤和調(diào)試 33
3.4 常用的Debug指令 36
3.5 常用的DOS系統(tǒng)功能調(diào)用 38
本章小結 40
習題3 40
第4章 操作數(shù)的尋址方式 42
4.1 立即尋址方式 42
4.2 寄存器尋址方式 43
4.3 存儲器尋址方式 44
4.3.1 直接尋址方式 44
4.3.2 寄存器間接尋址方式 46
4.3.3 寄存器相對尋址方式 47
4.3.4 基址變址尋址方式 48
4.3.5 相對基址變址尋址方式 49
本章小結 49
習題4 49
第5章 常用指令系統(tǒng) 51
5.1 數(shù)據(jù)傳送指令 52
5.1.1 通用數(shù)據(jù)傳送指令 52
5.1.2 累加器專用傳送指令 56
5.1.3 地址傳送指令 58
5.1.4 標志寄存器傳送指令 58
5.2 算術運算指令 59
5.2.1 類型擴展指令 59
5.2.2 加法指令 61
5.2.3 減法指令 64
5.2.4 乘法指令 67
5.2.5 除法指令 68
5.2.6 BCD碼的十進制調(diào)整指令 71
5.3 邏輯與移位指令 72
5.3.1 邏輯指令 72
5.3.2 移位指令 73
5.4 串操作指令 75
5.4.1 MOVS串傳送指令 75
5.4.2 CMPS串比較指令 77
5.4.3 SCAS串掃描指令 79
5.4.4 STOS串存入指令 80
5.4.5 LODS從串中取數(shù)指令 81
5.5 指令編碼 82
5.5.1 單操作數(shù)指令編碼 82
5.5.2 雙操作數(shù)指令編碼 85
5.5.3 其他指令編碼 87
本章小結 88
習題5 88
第6章 偽指令與源程序格式 91
6.1 偽指令 91
6.1.1 處理機選擇偽指令 91
6.1.2 段定義偽指令 91
6.1.3 程序開始和結束偽指令 93
6.1.4 數(shù)據(jù)定義與存儲器單元分配偽指令 93
6.1.5 類型屬性操作符 94
6.1.6 THIS操作符和LABEL偽操作 95
6.1.7 表達式賦值偽指令“EQU”和“=” 96
6.1.8 匯編地址計數(shù)器$與定位偽指令 96
6.1.9 基數(shù)控制偽指令 97
6.1.10 過程定義偽指令 98
6.2 表達式和操作符 98
6.3 EXE文件與COM文件 102
6.3.1 程序段前綴PSP 102
6.3.2 COM文件 103
本章小結 104
習題6 104
第7章 分支與循環(huán)程序設計 107
7.1 分支程序設計 107
7.1.1 分支程序轉移指令 107
7.1.2 分支程序結構 112
7.1.3 單分支程序 112
7.1.4 復合分支程序 113
7.1.5 多分支程序 116
7.2 循環(huán)程序設計 118
7.2.1 循環(huán)程序轉移指令 118
7.2.2 循環(huán)程序結構 119
7.2.3 計數(shù)循環(huán)程序 120
7.2.4 條件循環(huán)程序 121
7.2.5 條件計數(shù)循環(huán)程序 123
7.2.6 多重循環(huán)程序 125
本章小結 126
習題7 126
第8章 子程序設計 128
8.1 子程序結構 128
8.1.1 子程序調(diào)用指令 128
8.1.2 過程定義與過程結構 129
8.1.3 保存和恢復現(xiàn)場寄存器 131
8.2 子程序的參數(shù)傳遞 131
8.2.1 用寄存器傳遞參數(shù) 131
8.2.2 用變量傳遞參數(shù) 134
8.2.3 用地址表傳遞參數(shù)的通用子程序 136
8.2.4 用堆棧傳遞參數(shù)的通用子程序 139
8.2.5 用結構變量傳遞參數(shù)的通用子程序 143
本章小結 146
習題8 146
第9章 高級匯編語言程序設計 149
9.1 高級程序設計特性 149
9.1.1 條件控制偽指令 149
9.1.2 循環(huán)控制偽指令 150
9.1.3 過程聲明和過程調(diào)用偽指令 151
9.2 宏匯編程序設計 151
9.2.1 宏匯編 152
9.2.2 其他高級偽操作 158
9.2.3 宏匯編應用 163
9.3 模塊化程序設計 166
9.3.1 多模塊源程序 166
9.3.2 多模塊目標代碼 167
9.3.3 子程序庫 168
9.3.4 多模塊應用 168
9.4 輸入/輸出程序設計 172
9.4.1 外部設備與輸入/輸出 173
9.4.2 中斷 177
9.4.3 中斷處理程序設計 182
9.4.4 輸入/輸出應用 185
本章小結 201
習題9 201
第 10章 32位匯編指令簡介 204
10.1 32位硬件架構 204
10.1.1 IA-32位處理器 204
10.1.2 存儲器組織 207
10.2 數(shù)據(jù)尋址方式 208
10.2.1 立即數(shù)尋址方式 208
10.2.2 寄存器尋址方式 209
10.2.3 存儲器尋址方式 209
10.3 指令格式 211
10.3.1 數(shù)據(jù)傳送指令 211
10.3.2 位操作指令 212
10.3.3 串操作指令 213
10.3.4 算術指令和其他指令 213
10.3.5 條件測試并設置指令 215
10.4 編程舉例 215
10.4.1 Windows匯編語言特點 215
10.4.2 Win32 匯編程序示例 216
本章小結 219
習題10 219
第 11章 MIPS指令系統(tǒng)簡介 221
11.1 MIPS體系結構與指令集 221
11.1.1 MIPS通用寄存器 221
11.1.2 MIPS指令格式 223
11.2 MIPS 32位匯編常用指令 227
11.2.1 算術運算類指令 227
11.2.2 邏輯運算類指令 232
11.2.3 移位指令和置位指令 233
11.2.4 轉移指令 236
11.2.5 訪存指令 239
11.3 MIPS 32位匯編尋址方式 240
11.3.1 操作數(shù)尋址方式 240
11.3.2 指令尋址方式 241
11.4 MIPS程序基礎 243
11.4.1 MARS調(diào)試工具介紹 243
11.4.2 MIPS源程序框架 244
11.4.3 MIPS數(shù)據(jù)段定義 245
11.4.4 MIPS代碼段定義 245
11.4.5 MIPS系統(tǒng)調(diào)用syscall 246
11.4.6 第 一個MIPS匯編程序 246
11.5 MIPS編程 247
11.5.1 MIPS匯編分支結構 247
11.5.2 MIPS匯編循環(huán)結構 250
習題11 253
附錄1 80x86指令系統(tǒng)一覽 256
附錄2 偽操作與操作符 269
附錄3 中斷向量地址一覽 281
附錄4 DOS系統(tǒng)功能調(diào)用(INT 21H) 283
附錄5 BIOS功能調(diào)用 290
附錄6 Windows 104鍵鍵盤掃描碼 294
參考文獻 296