《匯編語言程序設計(第2版)》主要介紹基于80x86的匯編語言程序設計方法和技術,第1章~第10章為主體部分,包括計算機基本組成結(jié)構(gòu)和指令系統(tǒng),循環(huán)、分支、子程序和宏匯編技術的程序設計;第11章為輸入輸出的一些典型應用,其中基本每章配有一組實驗,共有10組實驗題供選用和參考。
作者及所在教學團隊成員絕大部分為具有博士學位的高校教師,具有多年《匯編語言程序設計》教育和實踐經(jīng)驗,本教材力求做到同時面向高校計算機相關專業(yè)學生,以及面向計算機領域從業(yè)人員,具體說來:
(1)匯編語言是一種用于電子計算機、微處理器、微控制器或其他可編程器件的低級語言,亦稱為符號語言。匯編語言不像其他大多數(shù)的程序設計語言一樣被廣泛用于程序設計。在今天的實際應用中,它通常被應用在底層,硬件操作和高要求的程序優(yōu)化的場合。驅(qū)動程序、嵌入式操作系統(tǒng)和實時運行程序都需要匯編語言。計算機領域從業(yè)人員的零售需求量很大。
(2)《匯編語言程序設計》是計算機科學與技術院系所有專業(yè)的必修課,但一般課時非常有限(本校32學時),所以內(nèi)容要精煉,邏輯性和可讀性要求高,如果編排合理,全國高等院校計算機相關專業(yè)學生的教材需求量也比較大;
(3)此外本教材為教師提供了教學大綱、多媒體課件、課后習題答案等服務資料,方便教學;
劉慧婷 博士,安徽大學計算機科學與技術學院副教授,主要研究項目及領域: 數(shù)據(jù)挖掘,教學經(jīng)驗豐富。其余作者都為安徽大學計算機科學與技術學院老師。
第1章 匯編語言基礎知識 1
1.1 匯編語言簡介 1
1.1.1 機器語言與匯編語言 1
1.1.2 匯編語言的組成 2
1.1.3 為什么要學習匯編語言 2
1.2 計算機中數(shù)據(jù)的表示 2
1.2.1 不同進位計數(shù)制及其相互轉(zhuǎn)換 2
1.2.2 二進制數(shù)和十六進制數(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
習題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 外部設備和接口 21
2.5 32位80x86CPU的工作模式 21
習題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 進入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二進制目標
文件 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
習題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
習題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 標志寄存器傳送指令 68
5.2 算術運算指令 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碼的十進制調(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
習題5 97
實驗4 算術及位串處理程序 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 表達式賦值偽指令“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 表達式和操作符 109
6.3 EXE文件與COM文件 112
6.3.1 程序段前綴PSP 112
6.3.2 COM文件 114
本章小結(jié) 115
習題6 115
實驗5 偽指令 117
第7章 分支與循環(huán)程序設計 119
7.1 分支程序設計 119
7.1.1 分支程序結(jié)構(gòu) 119
7.1.2 單分支程序 120
7.1.3 復合分支程序 121
7.1.4 多分支程序 123
7.2 循環(huán)程序設計 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
習題7 132
實驗6 分支程序設計 134
實驗7 循環(huán)程序設計 134
第8章 子程序設計 135
8.1 子程序結(jié)構(gòu) 135
8.1.1 子程序調(diào)用指令 135
8.1.2 過程定義與過程結(jié)構(gòu) 136
8.1.3 保存和恢復現(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 多模塊程序設計 154
8.3.1 多模塊之間的參數(shù)傳遞 154
8.3.2 顯示十進制數(shù)的通用模塊 156
8.3.3 C語言程序調(diào)用匯編語言
子程序 159
本章小結(jié) 160
習題8 160
實驗8 子程序設計和多模塊程序設計 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 重復匯編 173
9.2.4 條件匯編 176
習題9 178
實驗9 宏匯編程序設計 179
第10章 輸入/輸出和中斷 180
10.1 外部設備與輸入/輸出 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 中斷處理程序設計 190
10.3.1 中斷處理程序的基本功能 190
10.3.2 中斷處理程序設計舉例 191
本章小結(jié) 193
習題10 193
實驗10 中斷程序設計 194
第11章 輸入/輸出應用 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
習題11 223
實驗11 輸入/輸出程序設計 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
參考文獻 268