《匯編語言程序設(shè)計(第2版)》主要介紹基于80x86的匯編語言程序設(shè)計方法和技術(shù),第1章~第10章為主體部分,包括計算機基本組成結(jié)構(gòu)和指令系統(tǒng),循環(huán)、分支、子程序和宏匯編技術(shù)的程序設(shè)計;第11章為輸入輸出的一些典型應(yīng)用,其中基本每章配有一組實驗,共有10組實驗題供選用和參考。
劉慧婷 博士,安徽大學(xué)計算機科學(xué)與技術(shù)學(xué)院副教授,主要研究項目及領(lǐng)域: 數(shù)據(jù)挖掘,教學(xué)經(jīng)驗豐富。其余作者都為安徽大學(xué)計算機科學(xué)與技術(shù)學(xué)院老師。
第1章 匯編語言基礎(chǔ)知識 1
1.1 匯編語言簡介 1
1.1.1 機器語言與匯編語言 1
1.1.2 匯編語言的組成 2
1.1.3 為什么要學(xué)習(xí)匯編語言 2
1.2 計算機中數(shù)據(jù)的表示 2
1.2.1 不同進(jìn)位計數(shù)制及其相互轉(zhuǎn)換 2
1.2.2 二進(jìn)制數(shù)和十六進(jìn)制數(shù)的運算 4
1.2.3 帶符號數(shù)的補碼表示 5
1.2.4 補碼的加法和減法 6
1.2.5 無符號數(shù)的表示 7
1.2.6 字符的表示 7
1.2.7 基本邏輯運算 8
本章小結(jié) 9
習(xí)題1 9
第2章 計算機基本原理 10
2.1 計算機系統(tǒng)組成 10
2.2 存儲器 11
2.2.1 16位結(jié)構(gòu)的CPU 11
2.2.2 存儲器 11
2.2.3 存儲器分段 13
2.2.4 邏輯地址 14
2.2.5 CPU對內(nèi)存的讀寫操作 15
2.3 中央處理器(CPU)中的寄存器 17
2.3.1 寄存器介紹 17
2.3.2 CS和IP 20
2.3.3 堆棧 20
2.4 外部設(shè)備和接口 21
2.5 32位80x86CPU的工作模式 21
習(xí)題2 22
實驗1 用Debug命令查看寄存器和內(nèi)存
中的內(nèi)容 22
第3章 匯編語言程序?qū)嵗吧蠙C
操作 28
3.1 匯編語言的工作環(huán)境 28
3.1.1 匯編語言的系統(tǒng)工作文件 28
3.1.2 進(jìn)入DOS命令行的方式 29
3.1.3 常用的DOS命令 29
3.2 匯編語言程序?qū)嵗?1
3.2.1 單個字符的鍵盤輸入與顯示輸出 31
3.2.2 顯示字符串 32
3.3 程序?qū)嵗纳蠙C步驟 33
3.3.1 編輯——建立ASM源程序文件 33
3.3.2 匯編——產(chǎn)生OBJ二進(jìn)制目標(biāo)
文件 34
3.3.3 連接——產(chǎn)生EXE可執(zhí)行文件 34
3.3.4 LST列表文件 34
3.3.5 程序的運行 36
3.3.6 程序的跟蹤和調(diào)試 36
3.4 在WIN7系統(tǒng)中執(zhí)行匯編 39
3.5 幾個常用的DOS系統(tǒng)功能調(diào)用
(INT 21H) 42
本章小結(jié) 44
習(xí)題3 44
實驗2 上機過程及程序調(diào)試 45
第4章 操作數(shù)的尋址方式 47
4.1 立即尋址方式 47
4.2 寄存器尋址方式 48
4.3 直接尋址方式 49
4.4 寄存器間接尋址方式 51
4.5 寄存器相對尋址方式 52
4.6 基址變址尋址方式 53
4.7 相對基址變址尋址方式 54
本章小結(jié) 55
習(xí)題4 56
實驗3 不同尋址方式的靈活運用 56
第5章 常用指令系統(tǒng) 61
5.1 數(shù)據(jù)傳送指令 62
5.1.1 通用數(shù)據(jù)傳送指令 62
5.1.2 累加器專用傳送指令 65
5.1.3 地址傳送指令 67
5.1.4 標(biāo)志寄存器傳送指令 68
5.2 算術(shù)運算指令 69
5.2.1 類型擴展指令 69
5.2.2 加法指令 70
5.2.3 減法指令 73
5.2.4 乘法指令 76
5.2.5 除法指令 77
5.2.6 BCD碼的十進(jìn)制調(diào)整指令 79
5.3 邏輯與移位指令 81
5.3.1 邏輯指令 81
5.3.2 移位指令 82
5.4 串操作指令 84
5.4.1 MOVS串傳送指令 84
5.4.2 CMPS串比較指令 86
5.4.3 SCAS串掃描指令 88
5.4.4 STOS串存入指令 89
5.4.5 LODS從串中取數(shù)指令 90
5.5 程序轉(zhuǎn)移指令 91
5.5.1 無條件轉(zhuǎn)移指令與程序的可
重新定位 91
5.5.2 條件轉(zhuǎn)移指令 93
5.5.3 循環(huán)指令 96
本章小結(jié) 97
習(xí)題5 97
實驗4 算術(shù)及位串處理程序 100
第6章 偽指令與源程序格式 101
6.1 偽指令 101
6.1.1 處理機選擇偽指令 101
6.1.2 段定義偽指令 101
6.1.3 程序開始和結(jié)束偽指令 103
6.1.4 數(shù)據(jù)定義與存儲器單元分配
偽指令 103
6.1.5 類型屬性操作符 105
6.1.6 THIS操作符和LABEL偽操作 105
6.1.7 表達(dá)式賦值偽指令“EQU”
和“=” 106
6.1.8 匯編地址計數(shù)器$與定位偽指令 106
6.1.9 基數(shù)控制偽指令 108
6.1.10 過程定義偽指令 108
6.2 語句格式 109
6.2.1 名字項和操作項 109
6.2.2 表達(dá)式和操作符 109
6.3 EXE文件與COM文件 112
6.3.1 程序段前綴PSP 112
6.3.2 COM文件 114
本章小結(jié) 115
習(xí)題6 115
實驗5 偽指令 117
第7章 分支與循環(huán)程序設(shè)計 119
7.1 分支程序設(shè)計 119
7.1.1 分支程序結(jié)構(gòu) 119
7.1.2 單分支程序 120
7.1.3 復(fù)合分支程序 121
7.1.4 多分支程序 123
7.2 循環(huán)程序設(shè)計 125
7.2.1 循環(huán)程序結(jié)構(gòu) 125
7.2.2 計數(shù)循環(huán)程序 126
7.2.3 條件循環(huán)程序 127
7.2.4 條件計數(shù)循環(huán)程序 129
7.2.5 多重循環(huán)程序 131
本章小結(jié) 132
習(xí)題7 132
實驗6 分支程序設(shè)計 134
實驗7 循環(huán)程序設(shè)計 134
第8章 子程序設(shè)計 135
8.1 子程序結(jié)構(gòu) 135
8.1.1 子程序調(diào)用指令 135
8.1.2 過程定義與過程結(jié)構(gòu) 136
8.1.3 保存和恢復(fù)現(xiàn)場寄存器 138
8.2 子程序的參數(shù)傳遞 138
8.2.1 用寄存器傳遞參數(shù) 139
8.2.2 用變量傳遞參數(shù) 142
8.2.3 用地址表傳遞參數(shù)的通用
子程序 144
8.2.4 用堆棧傳遞參數(shù)的通用子程序 147
8.2.5 用結(jié)構(gòu)變量傳遞參數(shù)的通用
子程序 151
8.3 多模塊程序設(shè)計 154
8.3.1 多模塊之間的參數(shù)傳遞 154
8.3.2 顯示十進(jìn)制數(shù)的通用模塊 156
8.3.3 C語言程序調(diào)用匯編語言
子程序 159
本章小結(jié) 160
習(xí)題8 160
實驗8 子程序設(shè)計和多模塊程序設(shè)計 161
第9章 宏匯編及其他高級偽
操作 163
9.1 宏匯編 163
9.1.1 宏定義、宏調(diào)用和宏展開 163
9.1.2 宏定義的嵌套 166
9.1.3 宏定義中使用宏調(diào)用 167
9.1.4 帶間隔符的實參 167
9.1.5 連接操作符& 168
9.1.6 宏替換操作符% 168
9.1.7 LOCAL偽操作 169
9.1.8 使用宏庫文件 170
9.2 其他高級偽操作 173
9.2.1 PURGE偽操作 173
9.2.2 列表偽操作 173
9.2.3 重復(fù)匯編 173
9.2.4 條件匯編 176
習(xí)題9 178
實驗9 宏匯編程序設(shè)計 179
第10章 輸入/輸出和中斷 180
10.1 外部設(shè)備與輸入/輸出 180
10.1.1 I/O 端口 180
10.1.2 I/O的數(shù)據(jù)傳送控制方式 182
10.2 中斷 184
10.2.1 中斷的概念 184
10.2.2 中斷向量表 187
10.2.3 中斷過程 189
10.2.4 中斷調(diào)用指令 189
10.3 中斷處理程序設(shè)計 190
10.3.1 中斷處理程序的基本功能 190
10.3.2 中斷處理程序設(shè)計舉例 191
本章小結(jié) 193
習(xí)題10 193
實驗10 中斷程序設(shè)計 194
第11章 輸入/輸出應(yīng)用 195
11.1 可編程定時器 195
11.1.1 可編程定時器工作原理 195
11.1.2 定時器驅(qū)動揚聲器發(fā)聲 197
11.1.3 通用發(fā)聲程序 198
11.1.4 樂曲程序 201
11.2 鍵盤調(diào)用 202
11.2.1 字符碼與掃描碼 202
11.2.2 鍵盤中斷調(diào)用 203
11.2.3 鍵盤緩沖區(qū) 205
11.3 顯示器的文本方式顯示 206
11.3.1 顯示方式 206
11.3.2 顯示存儲器與直接寫屏 208
11.3.3 BIOS調(diào)用 209
11.4 顯示器的圖形方式顯示 214
11.4.1 圖形存儲器 214
11.4.2 直接視頻顯示 215
11.4.3 BIOS功能視頻顯示 216
11.5 磁盤文件存取 218
習(xí)題11 223
實驗11 輸入/輸出程序設(shè)計 223
附錄1 80x86指令系統(tǒng)一覽 224
附錄2 偽操作與操作符 238
附錄3 中斷向量地址一覽 251
附錄4 DOS系統(tǒng)功能調(diào)用
(INT 21H) 253
附錄5 BIOS功能調(diào)用 261
附錄6 Windows 104鍵鍵盤
掃描碼 266
參考文獻(xiàn) 268