本書為普通高等教育“十一五”國家級規(guī)劃教材。本書介紹了信息在計算機中的存儲形式、數(shù)制及相互轉換、二進制數(shù)的算術和邏輯運算等基礎知識;軟件部分講述了8086指令系統(tǒng)、部分偽指令和DOS功能調用及匯編語言程序設計和調試的全過程;硬件部分介紹了8086 CPU的內部特點、寄存器及相關概念、存儲器的分類及層次結構、物理地址形成、譯碼電路等;討論了諸多I/O接口芯片的結構、編程及應用,在串行通信中還介紹了USB總線;討論并舉例說明了A/D、D/A芯片、微機接口及應用,本書還對80286、80386 CPU主要內容及其體系做了簡要介紹。全書共分12章,每章附有習題,提供配套的電子課件。本書適合作為高等院校非電類理工科學生相關課程的教材,也可以作為相關技術人員或愛好者的參考書。
第4版前言
2010年,教育部啟動“卓越工程師教育培養(yǎng)計劃”,旨在培養(yǎng)造就一大批創(chuàng)新能力強、適應經濟社會發(fā)展需要的高質量各類型工程技術人才。“卓越計劃”具有三個特點:一是行業(yè)企業(yè)深度參與培養(yǎng)過程;二是學校按通用標準和行業(yè)標準培養(yǎng)工程人才;三是強化培養(yǎng)學生的工程能力和創(chuàng)新能力。顯然,強化培養(yǎng)學生的工程能力和創(chuàng)新能力的一個途徑就是改革教材,把書本上的知識,特別是工程技術方面的教材內容與實際結合起來,把提出問題、分析問題、解決問題的方法帶入到書本的講解中,使學生在學習中領會其工程思想,把握其工程特點,自覺地把所學知識高水平地應用到工作中。
我們在總結20多年的微機教學經驗基礎上,于2006年出版了相關教材,對計算機的軟硬件的充滿工程色彩的描述和講解是本書的主要特色。本書主要在中國科學技術大學非電子系及專業(yè)使用,原書寫于2006年,第3版于2011年出版,累計印刷了10次,超過4萬冊,顯示了讀者和有關教學部門對此書的重視和厚愛。
根據廣大讀者和從事微機教學同人的意見,并參考筆者歷年來的講稿,本書進行了修訂,修改內容包括:① 刪去了一些不必要的內容;② 更正了原書中的一些錯誤;③ 對書中一些概念作了進一步說明;④ 增加了一些實例。具體來講,在軟件部分對一些重要指令在概念上、在編程使用上進一步進行了描述。為了提高讀者的編程能力,本書增加了一些新的編程例子,并對程序盡量詳細地給予了說明。
針對本書的講課安排,筆者建議總學時在60~80學時,主要授課范圍是第1~10章,各單位可以根據自己的教學安排對其內容進行有重點的講授。第11章和12章是微機原理知識的擴展,對非電類的學生不一定講授。
筆者從事微機教學已近30年,雖積累了許多教學經驗,但不敢說這本教材能盡如人意,微機原理與接口內容很龐雜,書中的不妥之處在所難免,今后我們會繼續(xù)努力,完善這部教材。
本書由彭虎、周佩玲、傅忠謙進行修訂編寫,彭虎負責全書的統(tǒng)稿。
由于作者學識淺顯,經驗有限,書中難免會出現(xiàn)許多不足和遺漏,希望各位同行批評指正。
本書為教學老師提供相關教學課件,可從網站http://www.hxedu.com.cn下載。
讀者反饋:192910558(QQ群)。
作 者
中國科學技術大學信息技術學院
合肥工業(yè)大學醫(yī)學工程學院
第1章 計算機基本知識 1
1.1 微型計算機組成 1
1.2 微型計算機中信息的表示及運算基礎 2
1.2.1 二進制數(shù)的表示和運算 3
1.2.2 二-十進制(BCD)數(shù)的表示和運算 4
1.2.3 十六進制數(shù)的表示和運算 5
1.2.4 帶符號二進制數(shù)的表示和運算 6
1.2.5 字符的編碼表示 9
1.3 幾種進制之間的相互轉換 10
1.3.1 十進制整數(shù)到任意進制整數(shù)的轉換 10
1.3.2 任意進制整數(shù)到十進制整數(shù)的轉換 11
1.3.3 二進制數(shù)到十六進制數(shù)的轉換 12
1.3.4 帶符號二進制整數(shù)到十進制整數(shù)的轉換 12
習題1 12
第2章 8086系統(tǒng)結構 14
2.1 8086 CPU結構 14
2.1.1 8086 CPU的內部結構 14
2.1.2 8086 CPU的寄存器結構 16
2.1.3 8086 CPU的引腳及功能 20
2.2 8086系統(tǒng)的結構和配置 22
2.2.1 8086存儲器結構 23
2.2.2 8086的輸入/輸出結構 26
2.2.3 8086的最小模式和最大模式系統(tǒng) 27
2.3 8086 CPU內部時序 30
習題2 34
第3章 8086的指令系統(tǒng) 35
3.1 8086指令的特點 35
3.2 8086的尋址方式 36
3.2.1 8086尋址方式的說明 36
3.2.2 尋址方式介紹 37
3.3 8086的指令格式及數(shù)據類型 40
3.4 8086的指令集 42
3.4.1 數(shù)據傳輸指令 42
3.4.2 算術運算指令 46
3.4.3 位操作指令 52
3.4.4 串處理指令 57
3.4.5 程序控制轉移指令 59
3.4.6 處理器控制指令 65
習題3 66
第4章 8086匯編語言程序設計 70
4.1 8086匯編語言的語句 70
4.2 8086匯編語言中的偽指令 71
4.2.1 符號定義語句 72
4.2.2 變量定義語句 72
4.2.3 段定義語句 74
4.2.4 過程定義語句 76
4.2.5 結束語句 77
4.3 8086匯編語言中的運算符 77
4.3.1 常用運算符和操作符 77
4.3.2 運算符的優(yōu)先級別 79
4.4 匯編語言程序設計 80
4.4.1 匯編語言程序設計基本步驟 80
4.4.2 匯編語言程序的基本結構 80
4.5 宏定義與宏調用 86
4.6 匯編語言程序設計與上機調試 88
4.6.1 匯編語言程序設計實例 88
4.6.2 DOS功能調用與子程序設計 97
4.6.3 匯編語言程序上機調試 101
習題4 102
第5章 存儲器原理與接口 103
5.1 存儲器分類 103
5.2 多層存儲結構 105
5.3 主存儲器及存儲控制 107
5.3.1 主存儲器 107
5.3.2 主存儲器的基本組成 108
5.4 8086系統(tǒng)的存儲器組織 111
5.4.1 8086 CPU的存儲器接口 111
5.4.2 存儲器接口舉例 113
5.5 現(xiàn)代內存芯片技術 118
習題5 118
第6章 微型計算機的輸入/輸出 119
6.1 CPU與外設通信的特點 119
6.1.1 I/O端口的尋址方式 119
6.1.2 I/O端口地址的形成 120
6.2 輸入/輸出方式 121
6.3 CPU與外設通信的接口 122
6.3.1 同步傳輸方式與接口 122
6.3.2 異步查詢方式與接口 123
6.4 8086 CPU的輸入/輸出 126
習題6 127
第7章 可編程接口芯片 128
7.1 可編程并行接口芯片8255A 129
7.1.1 8255A的內部結構 129
7.1.2 8255A的引腳 130
7.1.3 8255A的工作方式及編程 131
7.1.4 8255A工作方式的功能 133
7.1.5 8255A應用舉例 140
7.2 可編程定時/計數(shù)器接口芯片8253 146
7.2.1 8253的內部結構 147
7.2.2 8253的引腳分配 149
7.2.3 8253的編程 149
7.2.4 8253的工作方式 152
7.2.5 8253的工作方式小結 158
7.2.6 8253應用舉例 159
習題7 162
第8章 串行輸入/輸出接口 164
8.1 串行通信接口 164
8.1.1 串行通信的實現(xiàn) 166
8.1.2 串行通信的基本概念 171
8.1.3 可編程串行通信接口芯片8251A簡介 174
8.1.4 串行通信接口RS-232C 182
8.2 USB總線簡介 188
8.2.1 USB概述 188
8.2.2 USB工作原理 191
8.2.3 USB傳輸方式 193
8.2.4 USB設備列舉 194
8.3 USB總線轉接芯片――CH341簡介 195
習題8 196
第9章 中斷與中斷管理 197
9.1 中斷原理 197
9.1.1 從無條件傳輸、條件傳輸?shù)街袛鄠鬏?197
9.1.2 中斷概念 198
9.1.3 中斷應用 199
9.2 中斷系統(tǒng)組成及其功能 200
9.2.1 與中斷有關的觸發(fā)器 200
9.2.2 中斷條件 201
9.2.3 中斷響應過程 202
9.3 中斷源識別及中斷優(yōu)先權 203
9.3.1 中斷源識別 203
9.3.2 中斷優(yōu)先權 206
9.4 8086中斷系統(tǒng) 207
9.4.1 不可屏蔽中斷 208
9.4.2 可屏蔽中斷 208
9.4.3 軟件中斷 208
9.4.4 中斷概念的再討論 211
9.5 8086 CPU的中斷管理 211
9.5.1 8086 CPU的中斷處理順序 211
9.5.2 8086 CPU的中斷服務入口地址表 211
9.5.3 中斷入口地址設置 212
9.6 可編程中斷控制器8259A簡介 215
9.6.1 8259A的內部結構及引腳分配 215
9.6.2 8259A的中斷管理方式 217
9.6.3 8259A的編程與應用 219
9.7 IBM PC硬件中斷 223
9.7.1 中斷設置 224
9.7.2 計算機中斷資源的使用 224
9.7.3 中斷舉例 225
習題9 227
第10章 D/A轉換與A/D轉換接口及其應用 228
10.1 從物理信號到電信號的轉換 229
10.2 D/A轉換器及其接口技術 231
10.2.1 并行8位D/A轉換芯片AD558及其接口 232
10.2.2 串行8位D/A轉換器TLC5620 233
10.2.3 12位D/A轉換器及接口 237
10.3 A/D轉換器及其接口技術 237
10.3.1 A/D轉換原理 237
10.3.2 A/D轉換與微機接口技術的一般原理 238
10.3.3 A/D轉換與微機接口電路 239
10.3.4 A/D轉換芯片ADC0809 241
10.3.5 串行8位A/D轉換器TLC0831 245
10.4 微機應用實例 247
習題10 249
第11章 80286微處理器 250
11.1 80286微處理器基本原理概述 250
11.1.1 80286內部結構簡介 250
11.1.2 80286芯片引腳功能 254
11.1.3 80286支持的數(shù)據類型和指令系統(tǒng) 255
11.1.4 80286的存儲器管理 256
11.1.6 保護虛地址方式下存儲器管理 257
11.2 80286的系統(tǒng)配置 262
習題11 264
第12章 80386微處理器 265
12.1 80386系統(tǒng)結構 265
12.1.1 80386微處理器基本結構 265
12.1.2 80386的寄存器組成 268
12.1.3 80386的存儲器管理 270
12.1.4 80386的保護機制 275
12.1.5 80386系統(tǒng)組成 275
12.2 80386的指令系統(tǒng) 277
12.2.1 80386的尋址方式 277
12.2.2 80386的指令系統(tǒng) 277
12.3 80386的存儲器擴展 280
12.3.1 基本的存儲器接口控制線 281
12.3.2 基本的存儲器接口 281
12.3.3 高速緩沖存儲器 284
12.3.4 Intel 82385高速緩存控制器 288
12.4 80386的輸入/輸出接口 289
12.4.1 80386的I/O系統(tǒng) 289
12.4.2 多功能接口芯片82380 291
12.5 80386的異常和中斷及其處理 294
12.5.1 實模式下異常和中斷的處理過程 295
12.5.2 保護虛地址方式下異常和中斷的處理過程 295
12.6 精簡指令集計算機(RISC)簡介 298
12.6.1 RISC的基本原理 298
12.6.2 RISC的特色及其難點所在 300
12.6.3 RISC的關鍵技術 301
12.7 80x86典型微處理機介紹 303
12.7.1 80486 CPU 303
12.7.2 Pentium系列微處理機 308
習題12 310
參考文獻 311