匯編語言程序設計

-
【作 者】王向慧 馬海波
【I S B N 】978-7-5084-6563-0
【責任編輯】吳 萍
【適用讀者群】本科
【出版時間】2009-06-01
【開 本】16開本
【裝幀信息】平裝(光膜)
【版 次】第1版
【頁 數】328
【千字數】
【印 張】
【定 價】¥32
【叢 書】高等院校“十一五”規劃教材
【備注信息】
簡介
本書特色
前言
章節列表
精彩閱讀
下載資源
相關圖書
本書以Intel 80x86微處理器為硬件平臺,介紹了匯編語言程序設計的方法。全書共11章,包括預備知識、實模式編程和保護模式編程三部分。在介紹80x86微處理器和存儲器組織之后,重點介紹了順序結構、分支結構、循環結構和子程序設計方法,還介紹了宏匯編、中斷和異常、輸入/輸出及模塊化程序設計方法。
本書對匯編語言的概念和程序設計的闡述通俗易懂,例子翔實;對習題的選擇,難易適當,題型豐富;在介紹一門計算機語言的同時,注重對程序編制和調試能力的培養。
本書可作為高等院校計算機及相關專業本、專科教材,也可作為從事計算機工作的工程技術人員以及計算機愛好者的參考書。
“匯編語言程序設計”是高校計算機及相關專業的必修課程,是“微機原理”、“接口技術”、“操作系統”等核心課程的先修課。匯編語言是執行效率最高、控制硬件底層能力最強的語言。學習匯編語言,不僅有助于設計出執行時間短、占用存儲空間少、控制硬件能力強的程序,還有助于了解計算機內部運行機制;學習編程技術,不僅掌握一門知識,也培養一種技能;應用匯編語言、運用調試工具,能夠準確剖析可執行程序代碼,優化程序性能。
本書是作者在總結多年教學經驗的基礎上精心編寫而成的。在編寫過程中力爭做到理論夠用為度、突出實用的特點,基于培養編程能力的原則,合理組織課程內容:分為預備知識、實模式編程和保護模式編程三部分。以當今國內廣泛使用的Intel 80x86系列微處理器為硬件平臺,深入討論匯編語言程序設計的方法,構造由淺入深的學習過程。
本書力求結構清晰,脈絡分明,在內容的編排上,力求由淺入深,圖表結合,通俗易懂;在知識結構上注意分解難點,循序漸進,舉一反三,突出重點。每個知識點輔以問題的分析,相關知識的引入,編程思想的形成,并輔以上機調試過程加以體會和消化;典型例題分析,既是知識的鞏固和延伸,又提供分析問題和解決問題的方法;每章配備的習題和上機實踐,便于復習和檢驗學習效果,同時提高編制程序和調試程序的能力,從不同的角度及時消化本章的知識點,為后續章節的學習作好鋪墊。
全書共有11章。第1章為匯編語言的必備基礎知識,介紹二進制、ASCII碼、補碼,初步認識匯編語言。第2~8章為實模式下16位機的編程技術,也是保護模式編程的基礎。第2章介紹Intel 8086微處理器的寄存器組織和存儲器組織;第3章介紹尋址方式和幾個常用匯編指令,并介紹簡短程序的設計及調試方法;第4章介紹常用偽指令及完整匯編語言程序的編輯、匯編、連接、調試等上機操作方法;第5章和第6章詳細介紹順序結構、分支結構、循環結構程序和子程序的設計方法及相關指令;第7章和第8章介紹輸入/輸出、中斷、宏匯編和模塊化程序設計方法。第9章和第10章為保護模式下32位機的編程技術,介紹保護模式下的存儲器管理、32位指令及程序設計方法。第11章介紹了保護模式的實現機理,供想深入學習保護模式編程的人員參考。
本書由王向慧、馬海波編著。具體分工為:第1~6章由王向慧編寫,第9~11章由馬海波編寫,第7~8章由劉民編寫,參與本書大綱討論和編寫工作的還有趙瑞、王德廣、連志春、張家敏、銀曉明、田宏、劉文光等,全書由王向慧和馬海波統稿。在本書的編寫過程中得到了中國水利水電出版社的大力支持,在此深表謝意,并對所參考的國內外教材和資料的原作者表示衷心的感謝!
書中難免出現疏漏或不妥之處,敬請廣大讀者批評指正。
第1部分 預備知識
第1章 匯編語言與二進制 1
學習目標 1
1.1 認識匯編語言 1
1.1.1 指令與程序 1
1.1.2 機器語言、匯編語言和高級語言 2
1.1.3 為什么學習和使用匯編語言 3
1.2 匯編語言中的計數制 5
1.2.1 進位計數制 5
1.2.2 十進制數與二進制數之間的相互轉換 5
1.2.3 十進制數與十六進制數之間的相互轉換 6
1.2.4 二進制數與十六進制數之間的相互轉換 7
1.3 計算機中數和字符的表示 8
1.3.1 無符號數與有符號數 8
1.3.2 有符號數的補碼表示 8
1.3.3 ASCII碼和BCD碼 10
1.4 基本的二進制運算規則 12
1.4.1 算術運算 12
1.4.2 邏輯運算 13
1.4.3 補碼的加減法運算 13
思考與習題 14
第2部分 實模式編程
第2章 8086計算機組織 16
學習目標 16
2.1 微型計算機硬件系統 16
2.2 Intel 80x86系列微處器簡介 18
2.3 8086微處理器的功能結構 21
2.4 實模式下的內存組織 22
2.4.1 內存的線性編址和數據存儲 22
2.4.2 內存的分段管理 23
2.4.3 邏輯地址到物理地址的轉換 24
2.4.4 多個邏輯段的數據管理 25
2.5 8086寄存器組 26
2.5.1 通用寄存器 27
2.5.2 段寄存器 28
2.5.3 指令指針寄存器 29
2.5.4 標志寄存器 29
思考與習題 31
第3章 簡短的程序設計 33
學習目標 33
3.1 匯編指令基本格式 33
3.2 開始設計匯編語言程序 35
3.2.1 幾個常用的匯編指令 35
3.2.2 設計第一個匯編語言程序 40
3.2.3 使用DEBUG進行匯編語言程序設計 41
3.3 JMP、JE、JNE指令與分支 49
3.4 LOOP指令與循環 53
3.5 與數據有關的四類尋址方式 56
3.5.1 固定尋址方式 56
3.5.2 立即尋址方式 57
3.5.3 寄存器尋址方式 58
3.5.4 存儲器尋址方式 58
3.6 一條指令的執行過程 63
3.7 上機實踐 64
思考與習題 65
第4章 匯編語言源程序的結構及設計過程 69
學習目標 69
4.1 匯編語言的語句類型和語句格式 69
4.1.1 初識完整的匯編語言源程序 70
4.1.2 執行性語句和說明性語句 71
4.1.3 匯編語言源程序的語句格式 71
4.2 匯編語言源程序的結構形式 74
4.2.1 完整的段定義結構 74
4.2.2 程序段前綴結構 75
4.2.3 簡化的段定義結構 76
4.3 匯編語言上機過程 77
4.3.1 源程序的編輯 78
4.3.2 對源程序的匯編 79
4.3.3 對目標程序的連接 80
4.3.4 EXE文件的運行與調試 81
4.3.5 COM文件的運行與調試 84
4.3.6 使用MASM 6.11下的ML.EXE匯編和連接 87
4.4 匯編語言源程序中的偽指令 88
4.4.1 符號定義偽指令 88
4.4.2 數據定義偽指令 90
4.4.3 定位偽指令與地址計數器 93
4.4.4 段定義偽指令 95
4.4.5 程序開始和結束偽指令 97
4.4.6 簡化段定義偽指令 97
4.4.7 處理器選擇偽指令 99
4.5 上機實踐 99
思考與習題 102
第5章 程序的基本控制結構及設計方法 105
學習目標 105
5.1 程序設計的一般步驟及基本控制結構 105
5.1.1 程序設計的一般步驟 105
5.1.2 算法的表示 105
5.1.3 順序、分支、循環結構 106
5.2 順序結構程序設計及常用指令 107
5.2.1 數據傳送類指令 107
5.2.2 算術運算類指令 110
5.2.3 邏輯運算類指令 114
5.2.4 移位類指令 116
5.2.5 標志位操作指令 118
5.2.6 順序結構程序設計示例 118
5.2.7 上機實踐 120
5.3 分支結構程序設計及常用指令 120
5.3.1 分支程序的基本結構形式 121
5.3.2 與轉移地址有關的尋址方式及無條件轉移指令JMP 121
5.3.3 條件轉移類指令 123
5.3.4 分支結構程序設計示例 126
5.3.5 上機實踐 131
5.4 循環結構程序設計及常用指令 132
5.4.1 循環程序的組成 133
5.4.2 循環程序的結構形式 133
5.4.3 循環控制類指令 134
5.4.4 數據串操作類指令及其重復前綴 136
5.4.5 循環控制的方法及循環結構程序設計示例 140
5.4.6 上機實踐 144
思考與習題 146
第6章 子程序設計 149
學習目標 149
6.1 子程序的引出 149
6.1.1 調用程序與子程序 149
6.1.2 堆棧在子程序設計中的作用 149
6.1.3 過程定義偽指令 152
6.1.4 CALL和RET指令 153
6.2 子程序的結構 155
6.2.1 調用程序與子程序在同一代碼段內的程序結構 155
6.2.2 調用程序與子程序不在同一代碼段內的程序結構 155
6.3 子程序設計方法 156
6.3.1 子程序設計時應注意的幾點問題 156
6.3.2 現場的保護與恢復 156
6.3.3 子程序說明文件 157
6.3.4 主程序與子程序之間參數傳遞的方法 157
6.4 子程序的嵌套與遞歸 167
6.5 子程序設計示例 169
6.6 上機實踐 173
思考與習題 175
第7章 中斷及輸入/輸出程序設計 177
學習目標 177
7.1 簡單的輸入/輸出程序設計 177
7.1.1 接口與端口 177
7.1.2 IN和OUT指令 177
7.1.3 一個發聲程序示例 179
7.2 中斷 180
7.2.1 中斷及中斷處理程序 180
7.2.2 中斷源與中斷分類 181
7.2.3 中斷向量表 183
7.2.4 INT和IRET指令 184
7.2.5 中斷過程 185
7.2.6 實模式下中斷程序設計 187
7.3 BIOS和DOS中斷 191
7.3.1 BIOS中斷調用及其使用方法 192
7.3.2 DOS功能調用及其使用方法 193
7.4 上機實踐 195
思考與習題 196
第8章 高級匯編語言程序設計 198
學習目標 198
8.1 宏匯編 198
8.1.1 宏的定義、調用和展開 198
8.1.2 多次宏調用時標號的處理 200
8.1.3 宏中參數的使用 202
8.1.4 宏庫的使用 205
8.1.5 宏與子程序 206
8.2 重復匯編 207
8.2.1 定重復匯編 207
8.2.2 不定重復匯編 208
8.3 條件匯編 209
8.4 上機實踐 211
8.5 模塊化程序設計 212
8.5.1 模塊化分的原則 213
8.5.2 模塊間的通信 213
8.5.3 模塊化程序設計上機步驟 216
8.5.4 模塊化程序設計示例 216
8.6 上機實踐 220
思考與習題 220
第3部分 保護模式編程
第9章 32位指令及其編程 222
學習目標 222
9.1 32位CPU的內部結構 222
9.1.1 32位CPU內部結構及其功能 222
9.1.2 程序可見的32位寄存器組 223
9.2 80386存儲器尋址方式 225
9.2.1 寄存器尋址基本概念 225
9.2.2 存儲器尋址方式 226
9.3 32位擴展指令 227
9.3.1 數據傳送類指令 228
9.3.2 算術運算類指令 231
9.3.3 邏輯和移位類指令 233
9.3.4 串操作類指令 234
9.3.5 控制轉移類指令 235
9.3.6 位操作類指令 236
9.3.7 保護模式類指令 237
9.4 32位指令的程序設計 238
9.4.1 80386編程格式 238
9.4.2 偽指令簡化段定義格式 239
9.4.3 簡單的32位編程示例 240
思考與習題 243
第10章 保護模式下的存儲器管理 246
學習目標 246
10.1 保護模式與實模式的比較 246
10.1.1 實模式尋址特點 246
10.1.2 保護模式尋址特點 247
10.2 虛擬內存管理 247
10.2.1 虛擬地址、線性地址、物理地址的轉換過程 248
10.2.2 保護機制 249
10.3 控制寄存器和系統地址寄存器 250
10.3.1 控制寄存器CR0、CR1、CR2、CR3 250
10.3.2 描述符表 251
10.3.3 全局描述符表寄存器GDTR 252
10.3.4 局部描述符表寄存器LDTR 253
10.3.5 中斷描述符表寄存器IDTR 253
10.3.6 任務狀態段寄存器TR 253
10.4 段式內存管理 254
10.4.1 段的定義及存儲段描述符 254
10.4.2 段寄存器與段選擇子 256
10.4.3 段描述符高速緩沖寄存器 257
10.5 頁式內存管理 258
10.5.1 分頁管理機制 258
10.5.2 兩級頁映射表 258
10.5.3 線性地址到物理地址的轉換 260
10.5.4 頁轉換高速緩存TLB 260
10.5.5 頁面映射示例 261
思考與習題 261
第11章 保護模式及其編程 263
學習目標 263
11.1 實模式與保護模式之間的切換 263
11.1.1 兩種模式之間的切換 263
11.1.2 頭文件 264
11.1.3 從實模式切換到保護模式的編程 268
11.2 控制門 272
11.2.1 系統段描述符 272
11.2.2 門描述符 274
11.3 任務切換 275
11.3.1 任務狀態段TSS 275
11.3.2 直接任務切換 277
11.3.3 間接任務切換 278
11.3.4 任務切換的步驟 278
11.3.5 任務內特權級變化的程序轉移 279
11.4 中斷和異常 281
11.4.1 80386的中斷和異常 281
11.4.2 異常類型 282
11.4.3 中斷和異常的處理過程 287
11.5 操作系統類指令 291
11.5.1 實模式和任何特權級下可執行的指令 291
11.5.2 實模式及特權級0下可執行的指令 291
11.5.3 只能在保護模式下執行的指令 293
11.6 輸入/輸出保護 295
11.6.1 輸入/輸出的保護方法 295
11.6.2 重要標志保護 297
11.7 虛擬8086模式 298
11.7.1 V86模式 298
11.7.2 進入及退出V86模式 299
11.7.3 V86模式下的敏感指令 302
思考與習題 302
附錄A BIOS中斷調用 304
附錄B DOS功能調用(INT 21H) 307
附錄C 集成化開發環境PWB 312
參考文獻 316本書以Intel 80x86微處理器為硬件平臺,介紹了匯編語言程序設計的方法。全書共11章,包括預備知識、實模式編程和保護模式編程三部分。在介紹80x86微處理器和存儲器組織之后,重點介紹了順序結構、分支結構、循環結構和子程序設計方法,還介紹了宏匯編、中斷和異常、輸入/輸出及模塊化程序設計方法。
本書對匯編語言的概念和程序設計的闡述通俗易懂,例子翔實;對習題的選擇,難易適當,題型豐富;在介紹一門計算機語言的同時,注重對程序編制和調試能力的培養。
本書可作為高等院校計算機及相關專業本、專科教材,也可作為從事計算機工作的工程技術人員以及計算機愛好者的參考書。
- 微型計算機原理與匯編語言程序設計(第二版)——習題解答、實驗指導和實訓 [主 編 楊 立]
- 微型計算機原理與匯編語言程序設計(第二版) [主編 楊立]
- 微機原理與匯編語言程序設計(第二版) [主編 荊淑霞]
- 匯編語言課程設計案例精編 [李珍香 劉紅梅 趙潤林 編著]
- 匯編語言程序設計 [葛建梅 等編著]
- 微機原理、匯編語言與接口技術 [唐瑞庭 等編著]
- 微機原理與匯編語言程序設計--習題解答、實驗指導和實訓 [荊淑霞 主編]
- 匯編語言程序設計(第二版) [宋錦河 主編]
- 微型計算機原理及應用 [劉建成 主編]
- 微型計算機原理與常用接口技術 [黃同愿 等編著]
- 微型計算機原理與匯編語言程序設計 [楊立 主編 鄧振杰 荊淑霞 副主編]
- 微型計算機原理與匯編語言程序設計--習題解答、實驗指導和實訓 [楊立 主編 荊淑霞 鄧振杰 副主編]
- 微機原理、匯編語言與接口技術 [徐雅娜 主編]
- 微機原理與匯編語言程序設計 [荊淑霞 主編]
- 匯編語言程序設計 [相偉 主編]
- 單片機原理及基于單片機的嵌入式系統設計 [蔡方凱 主編]