匯編語言程序設計(第2版)
劉慧婷 王慶生
相關主題
商品描述
本書主要介紹基於80x86的匯編語言程序設計方法和技術,第 1章~第 10章為主體部分,包括電腦基本組成結構和指令系統,循環、分支、子程序和宏匯編技術的程序設計;第 11章為輸入輸出的一些典型應用,其中基本每章配有一組實驗,共有10組實驗題供選用和參考。
作者簡介
刘慧婷 博士,安徽大学计算机科学与技术学院副教授,主要研究项目及领域: 数据挖掘,教学经验丰富。其余作者都为安徽大学计算机科学与技术学院老师。
目錄大綱
第 1章 匯編語言基礎知識 1
1.1 匯編語言簡介 1
1.1.1 機器語言與匯編語言 1
1.1.2 匯編語言的組成 2
1.1.3 為什麽要學習匯編語言 2
1.2 電腦中數據的表示 2
1.2.1 不同進位計數制及其相互轉換 2
1.2.2 二進制數和十六進制數的運算 4
1.2.3 帶符號數的補碼表示 5
1.2.4 補碼的加法和減法 6
1.2.5 無符號數的表示 7
1.2.6 字符的表示 7
1.2.7 基本邏輯運算 8
本章小結 9
習題1 9
第 2章 電腦基本原理 10
2.1 電腦系統組成 10
2.2 存儲器 11
2.2.1 16位結構的CPU 11
2.2.2 存儲器 11
2.2.3 存儲器分段 13
2.2.4 邏輯地址 14
2.2.5 CPU對內存的讀寫操作 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命令查看寄存器和內存
中的內容 22
第3章 匯編語言程序實例及上機
操作 28
3.1 匯編語言的工作環境 28
3.1.1 匯編語言的系統工作文件 28
3.1.2 進入DOS命令行的方式 29
3.1.3 常用的DOS命令 29
3.2 匯編語言程序實例 31
3.2.1 單個字符的鍵盤輸入與顯示輸出 31
3.2.2 顯示字符串 32
3.3 程序實例的上機步驟 33
3.3.1 編輯——建立ASM源程序文件 33
3.3.2 匯編——產生OBJ二進制目標
文件 34
3.3.3 連接——產生EXE可執行文件 34
3.3.4 LST列表文件 34
3.3.5 程序的運行 36
3.3.6 程序的跟蹤和調試 36
3.4 在WIN7系統中執行匯編 39
3.5 幾個常用的DOS系統功能調用
(INT 21H) 42
本章小結 44
習題3 44
實驗2 上機過程及程序調試 45
第4章 操作數的尋址方式 47
4.1 立即尋址方式 47
4.2 寄存器尋址方式 48
4.3 直接尋址方式 49
4.4 寄存器間接尋址方式 51
4.5 寄存器相對尋址方式 52
4.6 基址變址尋址方式 53
4.7 相對基址變址尋址方式 54
本章小結 55
習題4 56
實驗3 不同尋址方式的靈活運用 56
第5章 常用指令系統 61
5.1 數據傳送指令 62
5.1.1 通用數據傳送指令 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碼的十進制調整指令 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從串中取數指令 90
5.5 程序轉移指令 91
5.5.1 無條件轉移指令與程序的可
重新定位 91
5.5.2 條件轉移指令 93
5.5.3 循環指令 96
本章小結 97
習題5 97
實驗4 算術及位串處理程序 100
第6章 偽指令與源程序格式 101
6.1 偽指令 101
6.1.1 處理機選擇偽指令 101
6.1.2 段定義偽指令 101
6.1.3 程序開始和結束偽指令 103
6.1.4 數據定義與存儲器單元分配
偽指令 103
6.1.5 類型屬性操作符 105
6.1.6 THIS操作符和LABEL偽操作 105
6.1.7 表達式賦值偽指令“EQU”
和“=” 106
6.1.8 匯編地址計數器$與定位偽指令 106
6.1.9 基數控制偽指令 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
本章小結 115
習題6 115
實驗5 偽指令 117
第7章 分支與循環程序設計 119
7.1 分支程序設計 119
7.1.1 分支程序結構 119
7.1.2 單分支程序 120
7.1.3 復合分支程序 121
7.1.4 多分支程序 123
7.2 循環程序設計 125
7.2.1 循環程序結構 125
7.2.2 計數循環程序 126
7.2.3 條件循環程序 127
7.2.4 條件計數循環程序 129
7.2.5 多重循環程序 131
本章小結 132
習題7 132
實驗6 分支程序設計 134
實驗7 循環程序設計 134
第8章 子程序設計 135
8.1 子程序結構 135
8.1.1 子程序調用指令 135
8.1.2 過程定義與過程結構 136
8.1.3 保存和恢復現場寄存器 138
8.2 子程序的參數傳遞 138
8.2.1 用寄存器傳遞參數 139
8.2.2 用變量傳遞參數 142
8.2.3 用地址表傳遞參數的通用
子程序 144
8.2.4 用堆棧傳遞參數的通用子程序 147
8.2.5 用結構變量傳遞參數的通用
子程序 151
8.3 多模塊程序設計 154
8.3.1 多模塊之間的參數傳遞 154
8.3.2 顯示十進制數的通用模塊 156
8.3.3 C語言程序調用匯編語言
子程序 159
本章小結 160
習題8 160
實驗8 子程序設計和多模塊程序設計 161
第9章 宏匯編及其他偽
操作 163
9.1 宏匯編 163
9.1.1 宏定義、宏調用和宏展開 163
9.1.2 宏定義的嵌套 166
9.1.3 宏定義中使用宏調用 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的數據傳送控制方式 182
10.2 中斷 184
10.2.1 中斷的概念 184
10.2.2 中斷向量表 187
10.2.3 中斷過程 189
10.2.4 中斷調用指令 189
10.3 中斷處理程序設計 190
10.3.1 中斷處理程序的基本功能 190
10.3.2 中斷處理程序設計舉例 191
本章小結 193
習題10 193
實驗10 中斷程序設計 194
第 11章 輸入/輸出應用 195
11.1 可編程定時器 195
11.1.1 可編程定時器工作原理 195
11.1.2 定時器驅動揚聲器發聲 197
11.1.3 通用發聲程序 198
11.1.4 樂曲程序 201
11.2 鍵盤調用 202
11.2.1 字符碼與掃描碼 202
11.2.2 鍵盤中斷調用 203
11.2.3 鍵盤緩沖區 205
11.3 顯示器的文本方式顯示 206
11.3.1 顯示方式 206
11.3.2 顯示存儲器與直接寫屏 208
11.3.3 BIOS調用 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指令系統一覽 224
附錄2 偽操作與操作符 238
附錄3 中斷向量地址一覽 251
附錄4 DOS系統功能調用
(INT 21H) 253
附錄5 BIOS功能調用 261
附錄6 Windows 104鍵鍵盤
掃描碼 266
參考文獻 268