《匯編語言程序設(shè)計(jì)(第2版)》主要介紹基于80x86的匯編語言程序設(shè)計(jì)方法和技術(shù),第1章~第10章為主體部分,包括計(jì)算機(jī)基本組成結(jié)構(gòu)和指令系統(tǒng),循環(huán)、分支、子程序和宏匯編技術(shù)的程序設(shè)計(jì);第11章為輸入輸出的一些典型應(yīng)用,其中基本每章配有一組實(shí)驗(yàn),共有10組實(shí)驗(yàn)題供選用和參考。
劉慧婷 博士,安徽大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院副教授,主要研究項(xiàng)目及領(lǐng)域: 數(shù)據(jù)挖掘,教學(xué)經(jīng)驗(yàn)豐富。其余作者都為安徽大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院老師。
第1章 匯編語言基礎(chǔ)知識(shí) 1
1.1 匯編語言簡(jiǎn)介 1
1.1.1 機(jī)器語言與匯編語言 1
1.1.2 匯編語言的組成 2
1.1.3 為什么要學(xué)習(xí)匯編語言 2
1.2 計(jì)算機(jī)中數(shù)據(jù)的表示 2
1.2.1 不同進(jìn)位計(jì)數(shù)制及其相互轉(zhuǎn)換 2
1.2.2 二進(jìn)制數(shù)和十六進(jìn)制數(shù)的運(yùn)算 4
1.2.3 帶符號(hào)數(shù)的補(bǔ)碼表示 5
1.2.4 補(bǔ)碼的加法和減法 6
1.2.5 無符號(hào)數(shù)的表示 7
1.2.6 字符的表示 7
1.2.7 基本邏輯運(yùn)算 8
本章小結(jié) 9
習(xí)題1 9
第2章 計(jì)算機(jī)基本原理 10
2.1 計(jì)算機(jī)系統(tǒng)組成 10
2.2 存儲(chǔ)器 11
2.2.1 16位結(jié)構(gòu)的CPU 11
2.2.2 存儲(chǔ)器 11
2.2.3 存儲(chǔ)器分段 13
2.2.4 邏輯地址 14
2.2.5 CPU對(duì)內(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
實(shí)驗(yàn)1 用Debug命令查看寄存器和內(nèi)存
中的內(nèi)容 22
第3章 匯編語言程序?qū)嵗吧蠙C(jī)
操作 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 單個(gè)字符的鍵盤輸入與顯示輸出 31
3.2.2 顯示字符串 32
3.3 程序?qū)嵗纳蠙C(jī)步驟 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 程序的運(yùn)行 36
3.3.6 程序的跟蹤和調(diào)試 36
3.4 在WIN7系統(tǒng)中執(zhí)行匯編 39
3.5 幾個(gè)常用的DOS系統(tǒng)功能調(diào)用
(INT 21H) 42
本章小結(jié) 44
習(xí)題3 44
實(shí)驗(yàn)2 上機(jī)過程及程序調(diào)試 45
第4章 操作數(shù)的尋址方式 47
4.1 立即尋址方式 47
4.2 寄存器尋址方式 48
4.3 直接尋址方式 49
4.4 寄存器間接尋址方式 51
4.5 寄存器相對(duì)尋址方式 52
4.6 基址變址尋址方式 53
4.7 相對(duì)基址變址尋址方式 54
本章小結(jié) 55
習(xí)題4 56
實(shí)驗(yàn)3 不同尋址方式的靈活運(yùn)用 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ù)運(yùn)算指令 69
5.2.1 類型擴(kuò)展指令 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
實(shí)驗(yàn)4 算術(shù)及位串處理程序 100
第6章 偽指令與源程序格式 101
6.1 偽指令 101
6.1.1 處理機(jī)選擇偽指令 101
6.1.2 段定義偽指令 101
6.1.3 程序開始和結(jié)束偽指令 103
6.1.4 數(shù)據(jù)定義與存儲(chǔ)器單元分配
偽指令 103
6.1.5 類型屬性操作符 105
6.1.6 THIS操作符和LABEL偽操作 105
6.1.7 表達(dá)式賦值偽指令“EQU”
和“=” 106
6.1.8 匯編地址計(jì)數(shù)器$與定位偽指令 106
6.1.9 基數(shù)控制偽指令 108
6.1.10 過程定義偽指令 108
6.2 語句格式 109
6.2.1 名字項(xiàng)和操作項(xiàng) 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
實(shí)驗(yàn)5 偽指令 117
第7章 分支與循環(huán)程序設(shè)計(jì) 119
7.1 分支程序設(shè)計(jì) 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è)計(jì) 125
7.2.1 循環(huán)程序結(jié)構(gòu) 125
7.2.2 計(jì)數(shù)循環(huán)程序 126
7.2.3 條件循環(huán)程序 127
7.2.4 條件計(jì)數(shù)循環(huán)程序 129
7.2.5 多重循環(huán)程序 131
本章小結(jié) 132
習(xí)題7 132
實(shí)驗(yàn)6 分支程序設(shè)計(jì) 134
實(shí)驗(yàn)7 循環(huán)程序設(shè)計(jì) 134
第8章 子程序設(shè)計(jì) 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)場(chǎng)寄存器 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è)計(jì) 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
實(shí)驗(yàn)8 子程序設(shè)計(jì)和多模塊程序設(shè)計(jì) 161
第9章 宏匯編及其他高級(jí)偽
操作 163
9.1 宏匯編 163
9.1.1 宏定義、宏調(diào)用和宏展開 163
9.1.2 宏定義的嵌套 166
9.1.3 宏定義中使用宏調(diào)用 167
9.1.4 帶間隔符的實(shí)參 167
9.1.5 連接操作符& 168
9.1.6 宏替換操作符% 168
9.1.7 LOCAL偽操作 169
9.1.8 使用宏庫(kù)文件 170
9.2 其他高級(jí)偽操作 173
9.2.1 PURGE偽操作 173
9.2.2 列表偽操作 173
9.2.3 重復(fù)匯編 173
9.2.4 條件匯編 176
習(xí)題9 178
實(shí)驗(yàn)9 宏匯編程序設(shè)計(jì) 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è)計(jì) 190
10.3.1 中斷處理程序的基本功能 190
10.3.2 中斷處理程序設(shè)計(jì)舉例 191
本章小結(jié) 193
習(xí)題10 193
實(shí)驗(yàn)10 中斷程序設(shè)計(jì) 194
第11章 輸入/輸出應(yīng)用 195
11.1 可編程定時(shí)器 195
11.1.1 可編程定時(shí)器工作原理 195
11.1.2 定時(shí)器驅(qū)動(dòng)揚(yáng)聲器發(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 顯示存儲(chǔ)器與直接寫屏 208
11.3.3 BIOS調(diào)用 209
11.4 顯示器的圖形方式顯示 214
11.4.1 圖形存儲(chǔ)器 214
11.4.2 直接視頻顯示 215
11.4.3 BIOS功能視頻顯示 216
11.5 磁盤文件存取 218
習(xí)題11 223
實(shí)驗(yàn)11 輸入/輸出程序設(shè)計(jì) 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