《微機原理與接口技術·第2版 Win匯編、接口及設備驅動/21世紀高等學校規劃教材·計算機科學與技術》是一本將微型計算機原理、匯編語言程序設計和PC接口技術整合在一起的教材。考慮到CPU應用的普及性,教材以Intel微處理器為背景,圍繞“基礎”、“主線”和“關鍵技術”展開。本書主要介紹CPU、匯編程序設計、存儲器及常用I/O接口,將其作為教材的基礎;在此基礎上,結合微處理器的發展歷程,使學生了解微型計算機在不斷克服瓶頸效應,擴大內存和提高速度方面,采用的技術和方法,如cache、虛擬存儲、超標量設計、流水線作業及MMX技術,將微型計算機的技術發展作為貫穿教材的主線;將微型計算機的關鍵技術如混合編程技術、存儲管理、中斷、DMA、設備驅動程序設計等作為教材的重點,使學生掌握微型計算機關鍵技術的要點和應用方法。
本書可作為高等院校“微型計算機原理與接口技術”課程的通用教材,也可作為計算機專業學生的“匯編語言程序設計”和“微型計算機接口技術”這兩門課程的教材。
在學習本書之前,學生應已學過計算機應用基礎、數字電路與邏輯設計及一種高級語言程序設計等課程。可以說,已具備了一些關于計算機的基本知識。IBM副總裁Steve Mills 說過:“世界越來越儀表化,到處都在應用成本低廉的微處理機芯片技術,將智慧集合到各種事物里,并使它們更有效地發展。”所以,對于信息類學生,還需要對微處理機的工作原理和技術有更深入的理解,能夠利用微處理機技術分析和解決實際問題。
本課程學習的是微處理機的組成邏輯要具體到寄存器的層次,編程序要面對寄存器編程,這就是匯編語言編程。在如此深入的層面上理解計算機的工作原理,不單純是為了知識,而是很多應用建立在這個基礎上,只有掌握了微處理機工作原理、匯編語言編程技術及接口技術才能充分利用計算機的潛力。
隨著互聯網技術的不斷進步,網絡已經由計算機設備之間的聯網向萬物互聯方向發展。新微處理機芯片、新技術、新應用層出不窮,日新月異。因此,微機原理與接口技術課程的教學內容需要不斷更新和充實,然而要使教材隨時跟蹤微處理機的迅猛發展是十分困難的。根據國家教委對微機原理課程教學基本要求中指出的,課程的任務是使學生從理論和實踐上掌握微處理機的基本組成、工作原理、接口技術及應用,建立微處理機的整體概念,使學生具有應用微處理機進行軟硬件開發的初步能力。
本著上述指導思想,本書主要介紹四大部分內容:
第一部分主要講解匯編源程序設計。首先,本著“由淺入深、邊學邊練”的原則,在開始學習指令系統時,以debug32作為單指令的學習平臺,以www.movsd.com提供的MASM32作為程序設計集成開發環境,以Microsoft Visual C++中的調試器作為匯編程序的調試器,通過這三個工具軟件搭建匯編語言Windows下的上機環境,更為重要的是這三個工具軟件在網上唾手可得。其次介紹了浮點CPU的指令系統以及編程方法。最后通過詳細介紹在C/C++中如何調用匯編語言程序,以展示混合編程思想,優化軟件。
第二部分主要講解微處理機的存儲器系統。首先綜述了計算機內存芯片的種類、組織、特點以及各類存儲芯片在現行微處理機內的應用場合。其次講解了存儲器系統的擴展技術。最后以PC為實例,講解了8位、16位、32位一直到64位微處理機存儲器系統。
第三部分主要講解微處理機接口技術。通過講解中斷、DMA、計數器、并口、串口這5大接口芯片,掌握接口的共性技術,通過講解鍵盤與顯示、A/D、D/A,掌握微處理機常用接口技術。結合Windows接口程序設計既講解了接口上層應用程序,又講解了接口底層設備驅動程序。
本書在編寫過程中力求做到例題、習題、實驗有機地結合。也就是說,實驗內容力求做到例題的延伸,習題的內容不僅是課本應掌握的知識點,也是課本知識的延伸。講過和學過這門課的老師和學生都知道這門課“很難學”,這樣做的主要目的就是減輕這門課的學習難度,盡量做到循序漸進。本書附有PPT課件以及書中實例,方便教師教學及讀者學習,聯系郵箱是lyguo@chd.edu.cn,期待與你們教學互長。
本書的第1章、第2章由徐琨編寫,第3章、第4章由郭蘭英編寫,第5~7章由趙祥模編寫,第8章、第9章由惠飛編寫,第10章、第11章由馬峻巖編寫,徐琨參與了部分第3章、第4章的編寫、馬峻巖、惠飛參與了部分第5~7章的編寫,整體框架以及內容的確定由郭蘭英、趙祥模負責。
編者
2015年6月
第1章微型計算機系統概述
1.1微型計算機系統的組成
1.1.1微型計算機硬件
1.1.2微型計算機軟件
1.1.3微型計算機的基本工作方法
1.1.4微機系統的啟動和操作系統的裝載
1.2IA32微處理器體系結構
1.2.1IA32處理器體系結構的基礎
1.2.2IA32處理器程序設計模型
1.2.3IA32微處理器采用的主要技術
習題與思考題
第2章微處理器存儲器管理技術
2.1實模式存儲器尋址
2.1.1段地址和偏移地址
2.1.2默認段和偏移寄存器
2.1.3程序重定位問題的實現
2.2保護模式存儲器尋址
2.2.1分段存儲器管理
2.2.2分頁存儲器管理
習題與思考題
第3章匯編語言
3.1基本概念
3.1.1匯編語言的由來
3.1.2匯編程序
3.2數據表示
3.2.1十六進制數及Intel的存數慣例
3.2.2定點微處理器處理的數據類型
3.3源程序框架
3.3.1例題簡介
3.3.2上機操作步驟
3.4尋址方式
3.4.1數據存儲器尋址方式
3.4.2程序存儲器尋址方式
3.4.3堆棧存儲器尋址方式
3.5微處理器指令系統
3.5.1數據傳送指令
3.5.2算術運算指令
3.5.3邏輯運算指令
3.5.4移位類指令
3.5.5串指令
3.5.6程序控制類指令
3.5.7標志位操作指令及處理器控制類指令
3.6匯編語言的基本元素
3.6.1符號
3.6.2常數
3.6.3表達式
3.7說明性語句
3.7.1內存變量定義語句
3.7.2調整偏移量定義語句
3.7.3符號定義語句
3.8宏
3.8.1宏的定義及調用
3.8.2宏與子程序的區別
3.8.3宏程序庫
3.9算術協處理器
3.9.1算術協處理器的數據格式
3.9.2算術協處理器的內部結構
3.9.3協處理器基本指令集
3.9.4算術協處理器的編程
3.10使用資源
習題與思考題
第4章模塊化程序設計
4.1模塊間的交叉訪問
4.2子程序庫
4.3系統功能調用
4.3.1中斷指令
4.3.2BIOS層功能模塊的調用
4.3.3DOS層功能調用
4.3.4Windows層功能模塊調用
4.4C++語言與匯編語言混合編程
4.4.1在C++程序中使用匯編語言
4.4.2在C/C++應用程序中調用匯編語言程序
習題與思考題
第5章微處理器的硬件特性
5.18088引腳功能
5.1.18088總線周期概念
5.1.28088的地址和數據線
5.1.38088的控制和狀態線
5.1.4電源和時鐘
5.2總線控制邏輯
5.2.1總線的緩沖與分離
5.2.2總線控制器
習題與思考題
第6章內存儲器接口
6.1內存儲器件
6.1.1內存儲器概述
6.1.2存儲器的分類
6.1.3存儲器芯片的主要技術指標
6.1.4隨機存取存儲器的存儲元及外部特性
6.1.5只讀存儲器的存儲元及外部特性
6.2地址譯碼
6.2.1地址譯碼方式
6.2.2常用的譯碼器件
6.3存儲器擴展技術
6.3.1存儲容量的位擴展
6.3.2存儲容量的字擴展
6.3.3內存儲容量的字位擴展
6.416位、32位及64位機存儲器系統
6.4.116位機的存儲系統
6.4.232位機的存儲系統
6.4.364位機的存儲系統
習題與思考題
第7章總線技術
7.1PC系統總線
7.1.1ISA總線
7.1.2EISA系統總線
7.1.3VESA和PCI局部總線
7.2PC外總線
7.2.1USB通用串行總線
7.2.2RS232C總線
習題與思考題
第8章基本的I/O接口
8.1接口技術
8.1.1接口技術的基本概念
8.1.2輸入/輸出傳送方式
8.2中斷系統
8.2.1中斷的基本原理
8.2.2中斷控制器8259A
8.2.332位機的中斷系統
8.3DMA系統
8.3.1DMA的基本原理
8.3.2DMA控制器8237A
8.4計數/定時器
8.4.1定時技術
8.4.2計數/定時器8254
8.5并行接口
8.5.1并行接口概念
8.5.2并行接口8255
8.6串行接口
8.6.1串行通信的基本概念
8.6.2串行接口8251
8.7微機接口芯片組介紹
8.7.1386系統支持的系統外圍芯片組82360SL
8.7.2486系統支持的系統外圍芯片組82357ISP
8.7.3Pentium系統支持的系統外圍芯片組
習題與思考題
第9章鍵盤與顯示接口
9.1鍵盤接口
9.1.1鍵盤與鍵盤接口原理
9.1.2按鍵識別方法
9.2LED顯示接口
9.2.1LED顯示器及顯示原理
9.2.2LED顯示器接口
9.3LCD顯示接口
9.3.1LCD顯示器工作原理
9.3.2LCD顯示器接口
習題與思考題
第10章D/A、A/D轉換接口
10.1D/A轉換
10.1.1D/A轉換器的性能參數
10.1.2D/A芯片介紹
10.2A/D轉換
10.2.1A/D轉換器的主要性能參數
10.2.2A/D轉換的輔助電路
10.2.3A/D芯片介紹
習題與思考題
第11章基于PCI總線的微機接口系統設計
11.1微機接口系統概述
11.2基于PCI總線的微機接口設計
11.2.1PCI總線接口概述
11.2.2PCI總線接口設計
11.3Windows驅動程序設計
11.3.1驅動程序概述
11.3.2Windows I/O系統
11.3.3WDM驅動設計
11.3.4驅動設計實例
11.4Windows接口應用程序設計
11.4.1打開設備
11.4.2控制設備
11.4.3響應中斷
11.4.4實例分析
習題與思考題
附錄AASCII編碼表
附錄BDEBUG的使用說明
附錄C常用的BIOS層功能模塊
附錄D常用的DOS層功能模塊
附錄E8155命令字及狀態字簡介
附錄FPCI 9052 EEPROM配置說明
參考文獻