《微機原理與接口技術(第2版)》根據微處理器的最新發展(超線程技術、雙核技術),從Intel系列微處理器整體著眼,又落實到最基本、最常用的8086處理器,介紹了微機系統原理、Intel系列微處理器結構、8086指令系統和匯編語言程序設計、主存儲器及與CPU的接口、輸入輸出、中斷以及常用的微機接口電路和數模(D/A)轉換與模數(A/D)轉換接口。本修訂版根據教學改革的要求與授課教師的意見,作了必要的精簡與修改。全書觀點新、實用性強。
《微機原理與接口技術(第2版)》適合各類高等院校、各種成人教育學校和培訓班作為教材使用。
自1981年計算機界的巨人——IBM公司推出了IBM-PC(個人計算機),計算機的發展進入了一個新的時代——微型計算機時代。
20年來,微型計算機的性能得到了極大提高。
就CPU來說,十余年來,Intel公司生產的芯片經歷了8088、8086、80186、80286、80386、80486到Pentium(中文名為奔騰,編號為80586);Pentium也經歷了Pentium、Pentium MMX、Pentium Pro(中文名為高能奔騰又稱80686,即為Pentium 6結構的第一個處理器)以及把MMX技術與Pentium Pro結合在一起的Pentium II、Pentium III直至最新的Pentium 4。這些CPU形成一個系列(x86系列),它們是向下兼容的。在8086(8088)CPU上開發的程序,完全可以在Pentium 4上運行。所以,Intel公司把它們稱為IA(Intel Architecture)-32結構微處理器。我們可以用兩個表來說明IA.32結構微處理器的發展。
周明德教授,1959年畢業于清華大學計算機專業。畢業后留校。講授過“脈沖技術”、“微型計算機原理及應用”等課程。在普及微型計算機的高潮中到全國各地講授了數十次“微型計算機原理”,并制作了錄像帶,在各地播放,受到了極大的好評,對普及微型計算機起了重大作用。曾任中國軟件與技術服務股份有限公司總工程師,是電子部有突出貢獻專家,享受政府津貼。主持了國家“八五”、“九五”重點科技攻關項目“國產操作系統開發”,任副總設計師。該項目獲電子部科技進步特等獎,國家科技進步二等獎。著有《微型計算機系統原理及應用》、《64位微處理器應用編程》、《64位微處理器系統編程》、《UNIX/IJnux核心》等書,累計發行三百余萬冊。
第1章 概述
1.1 IA-32結構的概要歷史
1.1.1 8086
1.1.2 80386
1.1.3 80486
1.1.4 奔騰(Pentium)
1.1.5 P6系列處理器
1.1.6 奔騰II
1.1.7 奔騰III
1.1.8 Intel Pentium 4處理器
1.1.9 Intel超線程處理器
1.1.10 Intel雙核技術處理器
1.2 計算機基礎
1.2.1 計算機的基本結構
1.2.2 常用的名詞術語和二進制編碼
1.2.3 指令程序和指令系統
1.2.4 初級計算機
1.2.5 簡單程序舉例
1.2.6 尋址方式
1.3 計算機的硬件和軟件
1.3.1 系統軟件
1.3.2 應用軟件
1.3.3 支撐(或稱為支持)軟件
1.4 微型計算機的結構
1.4.1 微型計算機的外部結構
1.4.2 微型計算機的內部結構
1.5 多媒體計算機
1.5.1 人機接口
1.5.2 多媒體計算機的主要功能
1.5.3 多媒體計算機的組成
習題
第2章 IA-32結構微處理器與8086
2.1 IA-32微處理器是8086的延伸
2.1.1 8086功能的擴展
2.1.2 8086性能的提高
2.2 8086的功能結構
2.3 8086微處理器的執行環境
2.3.1 基本執行環境概要
2.3.2 基本的程序執行寄存器
2.3.3 存儲器組織
習題
第3章 8086指令系統
3.1 基本數據類型
3.1.1 字、雙字的對齊
3.1.2 數字數據類型
3.1.3 指針數據類型
3.1.4 串數據類型
3.2 8086的指令格式
3.3 8086指令的操作數尋址方式
3.3.1 立即數
3.3.2 寄存器操作數
3.3.3 存儲器操作數
3.3.4 I/O端口尋址
3.4 8086的通用指令
3.4.1 數據傳送指令
3.4.2 二進制算術指令
3.4.3 十進制算術指令
3.4.4 邏輯指令
3.4.5 移位和循環移位指令
3.4.6 控制傳送指令
3.4.7 串指令
3.4.8 標志控制操作
3.4.9 段寄存器指令
3.4.10 雜項指令
習題
第4章 匯編語言程序設計
4.1 匯編語言的格式
4.1.1 8086匯編語言程序的一個例子
4.1.2 8086匯編語言源程序的格式
4.2 語句行的構成
4.2.1 標記(Token)
4.2.2 符號(Symbol)
4.2.3 表達式(Expressions)
4.2.4 語句(Statements)
4.3 指示性語句(Directive Statements)
4.3.1 符號定義語句
4.3.2 數據定義語句
4.3.3 段定義語句
4.3.4 過程定義語句
4.3.5 結束語句
4.4 指令語句
4.4.1 指令助記符
4.4.2 指令前綴
4.4.3 操作數尋址方式
4.4.4 串操作指令
4.5 匯編語言程序設計及舉例
4.5.1 算術運算程序設計(直線運行程序)
4.5.2 分支程序設計
4.5.3 循環程序設計
4.5.4 字符串處理程序設計
4.5.5 碼轉換程序設計
4.5.6 有關I/O的DOS功能調用
4.5.7 宏匯編與條件匯編
習題
第5章 處理器總線時序和系統總線
5.1 8086的引腳功能
5.2 8086處理器時序
5.3 系統總線
5.3.1 概述
5.3.2 PC總線
5.3.3 ISA總線
5.3.4 PCI總線
5.3.5 USB總線
習題
第6章 存儲器
6.1 半導體存儲器的分類
6.1.1 RAM的種類
6.1.2 ROM的種類
6.2 讀寫存儲器RAM
6.2.1 基本存儲電路
6.2.2 RAM的結構
6.2.3 RAM與CPU的連接
6.2.4 64K位動態RAM存儲器
6.3 現代RAM
6.3.1 內存條的構成
6.3.2 擴展數據輸出動態隨機訪問存儲器EDO DRAM
6.3.3 同步動態隨機訪問存儲器SDRAM
6.3.4 突發存取的高速動態隨機存儲器Rambus DRAM
6.4 只讀存儲器(ROM)
6.4.1 掩模只讀存儲器
6.4.2 可擦除的可編程序的只讀存儲器EPROM
習題
第7章 輸入和輸出
7.1 概述
7.1.1 輸入輸出的尋址方式
7.1.2 CPU與I/O設備之間的接口信息
7.1.3 CPU的輸入輸出時序
7.1.4 CPU與接口電路間數據傳送的形式
7.1.5 IBM PC的外設接口與現代PC的外設接口
7.2 CPU與外設數據傳送的方式
7.2.1 查詢傳送方式
7.2.2 中斷傳送方式
7.2.3 直接數據通道傳送(DMA)
7.3 DMA控制器
7.3.1 主要功能
7.3.2 8237的結構
7.3.3 8237的工作周期
7.3.4 8237的引線
7.3.5 8237的工作方式
7.3.6 8237的寄存器組和編程
習題
第8章 中斷
8.1 概述
8.1.1 為什么要用中斷
8.1.2 中斷源
8.1.3 中斷系統的功能
8.2 最簡單的中斷情況
8.2.1 CPU響應中斷的條件
8.2.2 CPU對中斷的響應
8.3 中斷優先權
8.3.1 用軟件確定中斷優先權
8.3.2 硬件優先權排隊電路
8.4 8086的中斷方式
8.4.1 外部中斷
8.4.2 內部中斷
8.4.3 中斷向量表
8.4.4 8086中的中斷響應和處理過程
8.5 中斷控制器Intel 8259A
8.5.1 功能
8.5.2 結構
8.5.3 8259A的引線
8.5.4 8259A的中斷順序
8.5.5 8259A的編程
8.5.6 8259A的工作方式
習題
第9章 計數器和定時器電路Intel 8253/8254-PIT
9.1 概述
9.1.1 主要功能
9.1.2 8253-PIT的內部結構
9.1.3 8253-PIT的引線
9.2 8253-PIT的控制字
9.3 8253-PIT的工作方式
9.3.1 方式0—計完最后一個數時中斷
9.3.2 8253-PIT工作方式小結
9.4 8253-PIT的編程
9.5 8254-PIT
習題
第10章 并行接口芯片
10.1 可編程的并行輸入/輸出接口芯片8255A-5的結構
10.2 方式選擇
10.2.1 “方式”選擇控制字
10.2.2 方式選擇舉例
10.2.3 按位置位/復位功能
10.3 方式0的功能
10.3.1 方式0的基本功能
10.3.2 方式0的時序
10.4 方式1的功能
10.4.1 主要功能
10.4.2 方式1輸入
10.4.3 方式1輸出
10.5 方式2的功能
10.5.1 主要功能
10.5.2 時序
10.5.3 方式2的控制字
10.6 8255A應用舉例
習題
第11章 串行通信及接口電路
11.1 串行通信
11.1.1 概述
11.1.2 串行接口標準EIA RS-232C接口
11.2 Intel 8251A可編程通信接口
11.2.1 8251的基本性能
11.2.2 8251的方框圖
11.2.3 接口信號
11.2.4 8251的編程
11.2.5 8251應用舉例
習題
第12章 數模(D/A)轉換與模數(A/D)轉換接口
12.1 模擬量輸入與輸出通道
12.1.1 模擬量輸入通道的組成
12.1.2 模擬量輸出通道的組成
12.2 數模(D/A)轉換器
12.2.1 D/A轉換的基本原理
12.2.2 D/A轉換器的主要技術指標
12.2.3 典型的D/A轉換器芯片
12.3 D/A轉換器與微處理器的接口
12.3.1 8位D/A轉換芯片與CPU的接口
12.3.2 12位D/A轉換芯片與CPU的接口
12.4 模數(A/D)轉換器
12.4.1 A/D轉換的基本原理
12.4.2 A/D轉換器的主要技術指標
12.4.3 A/D轉換器與系統連接的問題
12.4.4 典型的A/D轉換芯片
12.5 A/D轉換器與微處理器的接口
12.5.1 8位A/D轉換芯片與CPU的接口
12.5.2 12位A/D轉換芯片與CPU的接口
12.6 D/A、A/D轉換應用舉例
12.6.1 D/A轉換舉例
12.6.2 A/D轉換舉例
習題
第13章 IA-32微處理器
13.1 IA-32處理器的功能結構
13.1.1 80386的功能結構
13.1.2 80486的功能結構
13.2 IA-32結構微處理器的指令系統的發展
13.3 IA-32結構微處理器的性能發展
13.3.1 IA-32的流水線結構簡介
13.3.2 Cache
13.4 IA-32結構微處理器的執行環境
13.4.1 操作模式
13.4.2 基本執行環境概要
13.4.3 存儲器組織
13.4.4 基本的程序執行寄存器
13.4.5 X87 FPU結構
13.5 IA-32 處理器的工作方式
13.6 保護虛地址方式
13.6.1 保護方式下的尋址機制
13.6.2 全局描述符表和局部描述符表
13.6.3 描述符
13.6.4 選擇子
13.6.5 段描述符的高速緩沖寄存器
13.6.6 IA-32微處理器中的特權級
13.6.7 任務切換
13.7 虛擬存儲器管理與IA-32微處理器的MMU單元
13.7.1 虛擬存儲器概念
13.7.2 Intel IA-32結構微處理器的存儲管理單元
習題
第1章 概述
自從1981年IBM公司進入微型計算機領域并推出IBM-PC以后,計算機的發展開創了一個新的時代——微型計算機時代。微型計算機(以下簡稱微機)的迅速普及,使計算機真正廣泛應用于工業、農業、科學技術領域以及社會生活的各個方面。以前的大型機(MainFrame)、中型機、小型機的界線已經日益模糊甚至消失。隨著微機應用的普及及技術的發展,芯片與微機的功能和性能迅速提高,其功能已經遠遠超過了20世紀80年代以前的中、小型機甚至超過了大型機。
到了20世紀90年代,隨著局域網、廣域網、城際網以及Intemet的迅速普及與發展,微機從功能上可分為網絡工作站(客戶端Client)和網絡服務器(Server)兩大類型。網絡客戶端又稱為個人計算機(Personal Computer,PC)。
1.1 IA-32結構的概要歷史
1971年,Intel公司發布了Intel 4004,這是一個4位微處理器,被認為是世界上第一個微處理器。從此,微處理器得到了極其迅速的發展。直至今天,基本上按摩爾定律(每18個月微處理器芯片上的晶體管數翻一番)指出的那樣發展。
到了20世紀70年代中期,微處理器的主流是Intel的8080、8085,Motorola的6800和S109的Z80等8位微處理器。其中,Z80稍占優勢。隨后,各個公司都向16位微處理器發展。
1981年,計算機界的巨頭——IBM公司(當時,IBM一個公司的銷售額占整個計算機行業的銷售額的50%以上)進入了個人計算機領域,推出了IBM-PC。在IBM-PC中采用的CPU是Intel的8088微處理器。
IBM-PC的推出極大地推動了個人計算機的發展,在20世紀80年代中期,個人計算機的年產量已經超過了200萬臺,到20世紀80年代后期,已經超過了1000萬臺。
個人計算機的迅猛發展,造就了兩個新的巨人——MicrosoR公司和Intel公司。Intel公司在微處理器市場占據著絕對的壟斷地位。