微機原理與接口技 第二版 電子工業出版社_第1頁
微機原理與接口技 第二版 電子工業出版社_第2頁
微機原理與接口技 第二版 電子工業出版社_第3頁
微機原理與接口技 第二版 電子工業出版社_第4頁
微機原理與接口技 第二版 電子工業出版社_第5頁
已閱讀5頁,還剩548頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、微機原理與接口技術(第2版)朱曉華 目錄 第一章 微機原理 1.1 微機概述 1.2 計算機中數的表示和編碼 1.3 微機的一般概念 1.4 Intel微處理器結構 第二章 8088/8086及Pentium指令系統 2.1 8088/8086的尋址方式 2.2 8088/8086指令系統 第三章 匯編語言程序設計 3.1機器語言、匯編語言與高級語言 3.2匯編語言源程序的結構 3.3數據定義 3.4匯編語言的運算符 3.5 基本結構程序的設計 3.6操作系統的資源的使用 3.7宏匯編與條件匯編 3.8外部引用與全局說明 3.9高級語言調用匯編語言子程序 第四章 PC總線與接口標準 4.1概述

2、 4.2系統總線 4.3PCI總線 第五章 輸入與輸出接口技術 5.1接口技術的基本概念 5.2輸入/輸出傳輸方式 5.3I/O端口讀/寫技術 5.4簡單并行接口8212 5.5可編程并行輸入輸出接口8255 5.6定時器/計數器概述 5.7可編程定時器/計數器芯片8253 第六章 中斷技術 6.1中斷的基本概念 6.28086/8088微處理器的中斷方式 6.3 中斷管理 6.4 高檔微處理器中斷系統 6.5 可編程中斷控制器8259A 6.6中斷接口技術 第七章 半導體存儲器 7.1概述 7.2隨機存取存儲器 7.3只讀存儲器 7.4存儲器的接口技術 7.5高速緩沖存儲器Cache 第八章

3、 DMA技術 8.1DMA概述 8.2DMA控制器 8.3DMA初始化 8.4DMA在微機中應用 9.1串行通信 9.2可編程一步通信接口INS8250 9.3IBM PC/XT中的異步INS8250第一章 微機原理1.1微機概述主要內容:1.微機的發展概況 2.微機的應用重點和難點:以上1要求:了解學時:1學時電子計算機是20世紀科學技術最卓越的成就之一,它為人類進入信息時代奠定了堅定的基礎。1.1.1 微機發展概況 1946年第一臺電子計算機問世 1971年,美國Intel公司研究并制造了I4004微處理器芯片。該芯片能同時處理4位二進制數,集成了2300個晶體管,每秒可進行6萬次運算,成

4、本約為200美元。它是世界上第一個微處理器芯片,以它為核心組成的MCS-4計算機,標志了世界第一臺微型計算機的誕生。 微機概念:以大規模、超大規模構成的微處理器作為核心,配以存儲器、輸入/輸出接口電路及系統總路線所制造出的計算機。 劃分階段的標志:以字長和微處理器型號。 特點:速度越來越快 容量越來越大 功能越來越強 (1971-1973)第一代第一代4位和低檔位和低檔8位機位機Intel 4004第二代第二代中高檔中高檔8位機位機8080/8085、Z80、MC6800第三代第三代16位機位機Intel 8086、Z8000、MC6800第四代第四代32位機位機80386、80486第五代第

5、五代64位機位機Intel Pentium(1974-1978)(1978-1981)(1981-1992)(1993后)后) 迄今為止,微機在體系結構上仍然基于馮.諾依曼建立的存儲程序概念,訪問內存活動占了CPU時間的70%左右, 所以存儲器組織和存儲管理的效率對整機效率影響很大. 微機采用了分層的存儲器系統.在這種系統中,存儲器可分為5層,從0層到4層.0層通常是CPU內部寄存器,離CPU最近,存取速度快,但數量有限.2層是主存儲器,通常由動態RAM(DRAM)組成.在0層與2層之間是高速緩沖存儲器Cache,即1層存儲器。 Cache是小容量的快速靜態RAM(SRAM),用來存儲處理器最

6、需要的數據塊。 Cache通常使系統加速,因為他開拓了程序的一般特性:空間和時間的局部性。 空間局部性:如果存儲器中一個單元被訪問,則其鄰近的單元可能很快也被訪問。 時間局部性:如果一個存儲單元一旦被訪問,則它就可能很快被再次訪問。 第3層是大容量的虛擬存儲器,普遍使用的是磁盤存儲器。虛擬存儲技術使處理器以為主存儲器比實際大很多。處理器把地址空間劃分為固定的塊,稱為頁面。在需要的時候,頁面被調到主存內,不需要時就送回磁盤。為保持系統中的次序,一個存儲管理單元(MMU)用來跟蹤那些頁面在主存內及它們的狀態。在80286以上的微處理器中,均采用了虛擬存儲技術。 第4層存儲器用來存儲在一個時期內用不

7、上的數據,或者因其重要而需要保留的數據。這種歸檔寄存在可更換的磁盤、光盤或DVD光盤等介質中。 微機在體系結構上采用開放式的總線結構,以便于系統的擴展。總線的主要職責是負責計算機各模塊之間及計算機與外設之間的數據傳輸。(EISA總線、MCA總線、PCI總線、PCI-E總線、VL總線等) 在硬件系統取得迅猛發展的同時,軟件系統的發展同樣發展迅速。操作系統最為常見的5種:DOS,Windows,Linux,UNIX/Xenix,OS/2. (Windows NT系統是第一個真正意義上的32位操作系統,自此以后的Windows操作系統不需要MS-DOS就可以運行在采用Intel 80 x86系列的C

8、PU的微機上,也可以運行在非Intel80 x86系列微機上;它支持計算機聯網,使各計算機可以互相通信和共享資源;可以訪問多至4GB的內存,并為應用程序管理內存。故Windows NT具有劃時代的意義。) 在微機家族中,單片微機的發展同樣十分引人注目。單片機是把CPU、一定容量的存儲器和必要的I/O接口電路集成在一個芯片上構成的具有計算機的完整功能的一種微機。1.1.2 微機的應用1.工業控制2.事物處理3.計算機輔助設計和輔助制造(CAD/CAM)4.教學培訓5.家庭娛樂和家政事務管理6.科學和工程計算7.人工智能1.2 計算機中數的表示和編碼主要內容:1.計算機中的進位計數制 2.計算機中

9、常用的編碼 3.帶符號數的表示 4.數的定點與浮點表示重點和難點:以上4點要求:熟悉并掌握學時:1學時1.2.1 計算機中的進位計數制1.進位計數制的表示法 十進制數 十進制數是大家熟悉的,用0,1,2,8,9十個不同的符號來表示數值,它采用的是“逢十進一,借一當十”的原則。 二進制表示法 基數為10的記數制叫十進制;基數為2的記數制叫做二進制。 二進制數的計算規則是“逢二進一,借一當二”。 二進制表示數值方法如下: NB = Ki * 2i 其中:Ki = 0 或 1 例:二進制數1011.1表示如下: (1011.1)B= 1 * 23 + 0 * 22 + 1 * 21 + 1 * 20

10、 +1 * 2(-1) 運算規則: 加法運算: 0+0 = 0 0+1 = 1 1+0 = 1 1+1 =10 (逢二進一) 減法運算: 0-0 = 0 10-1 =1 (借位) 1-0 = 1 1-1 =0 乘法運算: 0 * 0 =0 0 * 1 =0 1 * 0 =0 1 * 1 =1 除法運算 0 / 1 =0 1 / 1 =1 八進制表示法 八進制數是基數為八的計數制。八進制數主要采用0,1,2,7這八個阿拉伯數字。 八進制數的運算規則為“逢八進一,借一當八”。 八進制表示數值方法如下: NO = Ki * 8i 其中:Ki = 0 、1、2、3、4、5、6、7 例:(467.6)O

11、=4 * 82 + 6 * 81 + 7 * 80 + 6 * 8(-1) 十六進制表示法 基數為16,用0 - 9 、A - F 十五個字符來數值,逢十六進一。 各位的權值為 16I 十六進制表示數值方法如下: NH= Ki * 16i 其中:Ki = 0 - 9 、A F 例:(56D.3)H = 5 * 162 + 6 * 161 + 13 * 160 + 3 * 16(-1)2.進位計數制之間的轉換 二進制數和十進制數之間的轉換二進制數轉換為十進制數 方法:按二進制數的位權進行展開相加即可。 例:11101.101 =124+123+122+021+120+12-1+02-2+12-3

12、 =16+8+4+0+1+0.5+0.25+0.125 =29.875十進制數轉換為二進制數 方法: A、將整數部分和小數部分分別進行轉換,然后再把轉換結果進行相加。 B、整數轉換采用除2取余法:用2不斷地去除要轉換的數,直到商為0。再將每一步所得的余數,按逆序排列,便可得轉換結果。 C、小數轉換采用乘2取整法:每次用2與小數部分相乘,取乘積的整數部分,再取其小數部分乘2直到小部分為0。將所取整數順序放在小數點后即為轉換結果。 二進制數和八進制數、十六進制數間的轉換二進制數到八進制數、十六進制數的轉換 A、二進制數到八進制數轉換采用“三位化一位”的方法。從小數點開始向兩邊分別進行每三位分一組,

13、向左不足三位的,從左邊補0;向右不足三位的,從右邊補0。 B、二進制數到十六進制數的轉換采用“四位化一位”的方法。從小數點開始向兩邊分別進行每四位分一組,向左不足四位的,從左邊補0;向右不足四位的,從右邊補0。 八進制、十六進制數到二進制數的轉換 方法:采用“一位化三位(四位)”的方法。按順序寫出每位八進制(十六進制)數對應的二進制數,所得結果即為相應的二進制數1.2.2計算機中常用的編碼1.BCD碼:用00001001共10個4位二進制碼來表示十進制中09這10個數。2.符號信息的編碼:ASCII,7位編碼3.漢字的編碼:國標碼1.2.3 帶符號數的表示1.機器數與真值2.原碼3.反碼4.補

14、碼5.移碼1.2.4 數的定點與浮點表示1.3 微機的一般概念主要內容:1.計算機的基本組成和工作原理 2.名詞術語 3.微機結構 4. 微機的工作過程 5. 計算機軟件系統重點和難點:以上1、3、4要求:掌握學時:2學時1.3.1名詞術語1.微處理器:是將運算器和控制器做在一塊集成電路上的一個獨立部件。它具有解釋指令、執行指令和與外界交換數據的能力。2.微機:通過總線把I/O、CPU和半導體存儲器有機結合在一起。 微機分為:單板機(印制電路板)、單片機(芯片)、多板機。3.微機系統:微機配上外部設備、系統電源和系統軟件就構成微機系統。4.微機多機系統:多臺微機/微處理器組合而成。5.微機開發

15、系統(MDS):在研制開發微機應用系統時,從程序調試到樣機的系統調試,他都能提供軟件和硬件的支持。6.計算機網絡系統:借助通信網絡將一定的域內的眾多計算機和外設連接起來構成計算機網絡可以實現計算機之間的互相通信和資源共享。7.多媒體:文、圖、聲、像等單媒體與計算機程序融合在一起形成的信息傳播媒體。8.位、字節、字與字長 位:代表一個二進制數,常用小寫的b表示 字節:每個字節由8個位組成,用大寫的B表示。1B=8b。 1KB =210B=1024B 1MB = 210KB=1024 KB 1GB =210MB =1024 MB 字:在計算機系統中進行信息的處理、存儲或傳送時作為一個單元的一組二進

16、制位的組合。 比如字長16位。字大于等于字節 存儲容量:計算機中能夠保存二進制信息的數量。 時鐘頻率與運行速度: 時鐘頻率:計算機在執行指令時總是按照一個固有的節拍進行著,這個節拍是由一個標準的振蕩器產生的,它的振蕩頻率稱為時鐘頻率。 時鐘頻率越快運行速度越快。 指令與指令系統: 指令:用來指定計算機操作類型和操作數地址的一組字符。 計算機可以執行的全部指令的集合教指令系統。1.3.2計算機的基本組成和工作原理和結構:1.計算機的基本組成:運算器、控制器、存儲器、以及輸入和輸出設備。DBABCBCPU 存儲器存儲器I/O接口接口外外設設 微處理器 微處理器(CPU)是大規模集成電路技術做成的芯

17、片,芯片內集成有控制器、運算器和寄存器等相關部件,完成對計算機系統內各部件進行統一協調和控制。 控制器:根據程序中的命令發出各種控制信號,使各部分協調工作以完成指令所要求的各種操作。 運算器:對信息進行加工、運算的部件,執行算術運算和邏輯運算。 存儲器 功能:存放程序和數據。存儲器內存(主存)外存(輔存)RAMROMSRAMDRAMROMEPROME2PROM軟盤、硬盤、光盤 I/O設備和I/O接口 I/O設備:微機配備的輸入/輸出設備(外設)。 標準輸入/輸出設備(控制臺):鍵盤和顯示器(CRT)。I/O設備輸入設備輸出設備鍵盤鼠標掃描儀、數碼相機顯示器打印機繪圖儀2.存儲程序工作原理:把編

18、制好的程序和數據一起先送入存儲器中保存起來。啟動機器運行后,根據給出的程序中第一條指令的存儲地址,控制器就可以根據存儲程序中的程序周而復始的取出指令、分析指令、執行指令,直至完成全部指令操作,即控制器通過指令流的串行驅動實現程序控制。3.微機結構 總線(BUS):傳遞信息的一組公用導線。 系統總線:從處理器引出的若干信號線,CPU通過它們與存儲器或I/O設備進行信息交換。 一個部件只要滿足總線標準,就可以連接到采用這種總線標準的系統中。 系統總線分為: 地址總線:傳遞地址信息的總線,即AB。CPU在地址總線上輸出將要訪問的內存單元或I/O端口的地址,該總線為單向總線。 內存容量的計算:16條地

19、址線可訪問216 = 64 KB。 20條地址線可訪問 220 = 1 MB。 1K = 1024B 1M = 1024 KB 1G = 1024 MB 數據總線:傳遞數據信息的總線,即DB。 在CPU進行讀操作時,內存或外設的數據通過數據總線送往CPU; 在CPU進行寫操作時,CPU數據通過數據總線送往內存或外設,數據總線是雙向總線。 控制總線:傳遞控制信息的總線,即CB。 控制總線的方向: 一部分是從CPU輸出:通過對指令的譯碼,由CPU內部產生,由CPU送到存儲器、輸入/輸出接口電路和其它部件。如時鐘信號、控制信號等。 另一部分是由系統中的部件產生,送往CPU,如:中斷請求信號、總線請求

20、信號、狀態信號。 微處理器(CPU) 存儲器: CPU讀/寫存儲器的簡單過程是:先由CPU給出要操作的存儲單元地址,該地址信號通過地址總線送到存儲器的地址譯碼器譯碼后,在單元中選中對應與該地址的存儲單元;然后CPU通過控制總線發出讀或寫的控制信號,對該單元讀或寫.讀出的內容通過數據總線送到CPU的數據寄存器中.要寫入的內容則由CPU發出,經數據寄存器通過數據總線寫入存儲單元.1.3.3.微機的工作過程: 在進行計算前,應做如下工作:(1)、用助記符號指令(匯編語言)編寫程序(源程序);(2)、用匯編軟件(匯編程序)將源程序匯編成計算機能識別的機器語言程序;(3)、將數據和程序通過輸入設備送入存

21、儲器中存放。例:完成5+6=?的程序:MOV A,05H /B0H 05H ;把05送入累加器AADD A,06H /04H 06H ;06與A中內容相加, 結果存入累加器AHLT /F4H ;停止所有操作。1、取指令階段的執行過程:(設程序從00H開始存放)(1)、將程序計數器(PC或IP)的內容送地址寄存器AR。(2)、程序計數器PC的內容自動加1變為01H,為取下一條指令作好準備。(3)、地址寄存器AR將00H通過地址總線送至存儲器地址譯碼器譯碼,選中00H單元。(4)、CPU發出“讀”命令。(5)、所選中的00單元的內容B0H讀至數據總線DB上。(6)、經數據總線DB,讀出的B0H送至

22、數據寄存器DR。(7)、數據寄存器DR將其內容送至指令寄存器IR中,經過譯碼CPU“識別”出這個操作碼為“MOV A,05H”指令,于是控制器發出執行這條指令的各種控制命令。PCARALUABIRIDPLA100 B0H01 05H02 04H03 06H04 F4H34讀命令讀命令B0H56B0H控制信號控制信號(取第一條指令操作示意圖)(取第一條指令操作示意圖)B0H7B0H00H00HDR2、執行指令階段的執行過程:(1)、將程序計數器(PC或IP)的內容送地址寄存器AR。(2)、程序計數器PC的內容自動加1變為02H,為取下一條指令作好準備。(3)、地址寄存器AR將01H通過地址總線送

23、至存儲器地址譯碼器譯碼,選中01H單元。(4)、CPU發出“讀”命令。(5)、所選中的01H單元的內容05H讀至數據總線DB上。(6)、經數據總線DB,讀出的05H送至數據寄存器DR。(7)、由控制碼計算機已知到讀出的是立即數,并要求將它送入累加器A中,所以數據寄存器DR通過內部總線將05H送入累加器A中。PCARALUABDRIRIDPLA02H101H00 B0H01 05H02 04H03 06H04 F4H34讀命令讀命令05H56705H1.3.4 計算機軟件系統 系統軟件和應用軟件 系統軟件包括操作系統、各種高級語言處理程序、編譯系統和其他服務程序、數據庫管理系統等軟件。這些軟件不

24、是用來解決具體應用問題的,而是利用計算機自身的功能,合理的組織解題流程,管理計算機軟、硬件各種資源,提供人-機間的接口,從而簡化或代替各環節中人所承擔的工作。還可以為用戶使用機器提供方便,擴大機器功能,提高工作效率。 應用軟件是由用戶利用計算機及其系統軟件編制的解決實際應用問題的程序。1.4 Intel微處理器結構主要內容:1. Intel 8086/8088微處理器結構 2. 8086CPU引腳功能 3. 8086/8088CPU的存貯器組織和I/O組織 4. 8086CPU內部時序重點和難點:以上4點要求:掌握學時:6學時型號發布年份字長/位集成度/(萬/片)主頻/MHZ內數據總線寬度/位

25、外數據總線寬度/位地址總線寬度/位尋址空間高速緩沖存儲器(cache)80861978162.94.771616201MB無80881979準162.94.77168201MB無8028619821613.462016162416MB無8038619853227.512.5333232324GB有80486199032120160251003232324GB8KBPentium199332310330601663264324GB8KB數據8KB指令Pentiumii19973275023333332643664GB32KB和512KB二級高速緩存Pentiumiii19993295045032

26、643664GB32KB一級緩存和512KB二級緩存Pentium42000324200150032643664GB32KB一級緩存和512KB二級緩存Pentium4 6xx2005643000380064643664GB32KB一級緩存和1/2MB二級緩存PentiumD2005642660360064643664GB32KB一級緩存和2/4MB二級緩存1.4.1 Intel 8086/8088微處理器結構 內部結構是16位,但數據總線是8位,因此是一種準16位CPU。它具有包括乘法和除法的16位運算指令,所以能處理16位數據,也能處理8位數據。8086/8088有20條地址線,其直接尋址

27、能力達到1MB。地址從00000HFFFFFH,采用40條引線封裝,單相時鐘,電源為5V。01020304050607080910111213141516171819204039383736353433323130292827262524232221GNDAD14/A14AD13/A13AD12/A12AD11/A11AD10/A10AD9/A9AD8/A8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCC(5V)AD15/A15A16/S3A17/S4A18/S5A19/S6/BHE/S7 HIGH(SSO)MN/MX/RDHOLD(/RQ/GT0) HLDA(

28、/RQ/GT1)/WR(/LOCK)M/IO(/S2)DT/R(/S1)/DEN(/S0)ALE(QS0)/INTA(QS1)/TESTREADYRESET8086/80881.8088的寄存器結構 通用寄存器又稱為數據寄存器,既可作16位數據寄存器使用,也可作為兩個8位數據寄存器使用。當用作16位時,稱為AX、BX、CX、DX。當用作8位時,AH、BH、CH、DH存放高字節,AL、BL、CL、DL存放低字節,并且可獨立尋址。多數情況下,通用寄存器用在算術和邏輯運算指令中,用來存放算術邏輯運算的源/目的操作數。特殊情況下,AX稱為累加器,BX稱為基址寄存器,CX稱為計數寄存器,DX稱為數據寄存

29、器。 段寄存器8086/8088CPU有20條地址線,他可以尋址的存儲空間為1MB,而8086指令給出的地址編碼只有16位,指令指針和變址寄存器也都是16位,故CPU不能直接尋址1MB空間。為此采用段寄存器,即8086用一組段寄存器將這1MB存儲空間分成若干個邏輯段,每個邏輯段長度小于等于64KB,用4個16位的段寄存器分別存放各個段的起始地址(又稱段基址),8086的指令能直接訪問這4個段寄存器。不管是指令還是數據的尋址,都只能在劃定的64KB范圍內進行。尋址時還必須給出一個相對于分段寄存器值所指定的起始地址的偏移值(也稱有效地址),以確定段內的確切地址(物理地址)物理地址的計算先把段地址左

30、移4位,然后與16位的偏移值相加。物理地址計算方法: 物理地址 = (DS)* 16 + (BX)或(SI)或(DI) 物理地址 = (SS)* 16 + (BP)例:已知:(DS)=2100H,(DI)=2000H 指令: MOV AX,DI ;(AX) (DI) 物理地址=(DS) * 16 + (DI) =2100H * 16 + 2000H =21000H + 2000H =23000H 指令結果:將23000H單元內容送AL中, 將23001H單元內容送AH中。共4個。把1MB存貯器分為若干個邏輯段,每個邏輯段長度小于等于64K.代碼段寄存器CS表示當前使用的指令代碼可以從該段寄存器

31、指定的段中取得,相應的偏移值則由IP提供。堆棧段寄存器SS指定當前堆棧的底部地址。(堆棧:是一種數據項按序排列的數據結構,只能在一端(稱為棧頂(top)對數據項進行插入和刪除。地址從高到低生成,先進先出。) 數據段寄存器DS指示當前程序使用的數據所存段的最低地址。附加段寄存器ES指出當前程序使用附加段地址的位置,該段一般用來存放原始數據或運算結果。 地址指針與變址寄存器存放地址的偏移量(即相對于段起始地址的距離)。堆棧指針SP用以指出在堆棧段中當前棧頂的地址,在入棧(PUSH)和出棧(POP)指令中也是由SP給出棧頂的偏移地址的。基址指針BP指出要處理的數據在堆棧段的基地址。BP所指的物理地址

32、必須用堆棧段寄存器SS來計算。BP只是全部偏移量中一個基本值。變址寄存器SI和DI用來存放當前數據段中某個單元的偏移量。在字符串處理中,被處理的數據稱為源操作數據,他們存放在源變址寄存器SI給出的偏移地址中,而處理后的字符串則存放在由目的變址寄存器DI給出的偏移地址中。這時SI和DI不能顛倒使用 取指時CPU會自動選擇碼段寄存器(CS),再加上由IP所決定的16位偏移量,得到要取的指令的物理地址。 當設計堆棧操作時CPU會自動選擇堆棧段寄存器(SS),再加上由SP所決定的16位偏移量,得到物理地址。 當涉及操作數時,CPU會自動選擇數據段寄存器(DS)或附加段寄存器(ES),再加上16位偏移地

33、址。根據不同的尋址方式,這16位偏移地址可以是指令中的直接地址,或是某一個16位寄存器的值,也可以是指令中的偏移量家加上某個16位寄存器中的值。 指令指針與標志寄存器正常運行時,IP中存放的是BIU要取的下一條指令的偏移地址,它具有自動加1功能。(BIU負責與存儲器、I/O端口傳送數據)標志寄存器PSW是一個16位的寄存器,8086/8088共使用了9個有效位,其中6位是狀態標志位,3位是控制標志位。狀態標志位是當一些指令執行后,所產生的數據的一些表征,而控制標志位則是可以由程序寫入以達到控制處理機狀態或程序執行方式的表征。 15 0OFDFIFTFSFZFAFPFCFCF:進位標志位。當執行

34、一個加法(或減法)運算使最高位產生進位(或借位)時,CF為1,否則為0。PF:奇偶標志位。該標志位反映運算結果中1的個數是偶數個還是奇數個。當指令執行結果的低8位中含偶數個1時,PF為1,否則為0.AF:輔助進位標志位。當執行一個加法(或減法)運算使結果的低4位向高4位有進位(或借位)時,AF為1,否則為0.ZF:零標志位。若當前的運算結果為零,ZF為1,否則為0.SF:符號標志位。他與運算結果的最高位相同。OF:溢出標志位。當補碼運算有溢出時,OF為1,否則為0.DF:方向標志位。用以指定字符串處理的方向,當DF=1,字符串以遞減順序處理,即地址以從高到低順序遞減。反之則以遞增處理。IF:中

35、斷允許標志位。它用來控制8086是否允許接收外部中斷請求。若IF=1,8086能響應外部中斷。反之則不響應。注意:IF的狀態不影響非屏蔽中斷請求(NMI)和CPU內部中斷請求。TF:跟蹤標志位。為調試程序而設定的陷阱控制位。當TF=1,8086CPU處于單步狀態,此時CPU每執行完一條指令就自動產生一次內部中斷。當該復位后,CPU恢復正常。2.8088的功能結構 分為總線接口(BIU)和執行單元(EU)。 總線接口單元BIU總線接口單元BIU是8088CPU同存貯器和I/O設備之間的接口部件,負責對全部引腳的操作,即8088所有對存貯器和I/O設備的操作都是由BIU中的各部件主要是圍繞這個目標

36、設計的。它提供了16位雙向數據總線、20位地址總線和若干條控制總線。具體任務:負責從內存單元中預取指令,并將它們送到指令隊列緩沖器暫存。CPU執行指令時,總線接口單元要配合執行單元,從指定的內存單元或者I/O端口中取數據傳送給執行單元,或者把執行單元的處理結果傳送到指定的內存單元或I/O端口中。總線接口單元BIU由20位地址加法器、4個段寄存器、16位指令指針IP、指令隊列緩沖器和總線控制邏輯電路等組成。AH ALBH BLCH CLDH DL SP BP DI SI通通用用寄寄存存器器運算寄存器運算寄存器ALU標志標志執行部分執行部分控制電路控制電路1 2 3 4 5 6 CS DS SS

37、ES IP 內部寄內部寄存器存器I/O控制控制電路電路地址加地址加法器法器20位位16位位8位位指令隊列緩沖器指令隊列緩沖器外外總總線線執行部件執行部件總線接口部件總線接口部件8086CPU結構圖結構圖 執行單元EU:負責指令的執行。從BIU的指令隊列緩沖器中取指令。取指和執指是分開而且可以重疊。CPU在執行一條指令的同時,就可以取出下一條或多條指令并將其送至指令流隊列中排隊;在執行完一條指令后便可立即執行下一條指令。執行單元中包含一個16位的運算器ALU、8個16位的寄存器、一個16位標志寄存器PSW、一個數據暫存寄存器和執行單元的控制電路。1.4.2 8086CPU引腳功能 8086CPU

38、具有40條引腳,采用雙列直插式封裝形式。 8086CPU可在兩個模式下工作(最小模式和最大模式)最小模式:指系統中只有一個8086CPU,在這種系統中,8086CPU直接產生所有的總線控制信號,系統所需的外加其他總線控制邏輯部件最少。最大模式:指系統中常含有2個或多個微處理器,其中一個為主處理器8086CPU,其他的處理器稱為協處理器,它們是協助主處理器工作的。在最大模式工作時,控制信號是通過8288總線控制器提供的。1.地址/數據復用總線AD0AD15 雙向、三態。用于輸出低16位地址A0A15和輸入/輸出數據D0D15。 總線周期:CPU與芯片外部進行數據交換必須通過總線,這種信息交換的最

39、基本過程被稱為總線周期。由于這部分工作在CPU內部是由BIU單元執行,故又叫BIU周期。一個周期至少由4個時鐘周期組成。四個周期固定用T1T4表示。如果系統的頻率為10MHZ,那么時鐘周期T=100ns,完成一個總線周期就需要400ns 在總線周期的第一個時鐘周期T1用來輸出要訪問的存貯器單元或I/O的低16位地址A0A15。而在其他時鐘周期對于讀周期來說處于懸浮狀態,對于寫周期則是傳送數據。2.地址/狀態復用總線A19/S6A16/S3 分時復用三態輸出。第一個時鐘周期用來輸出訪問存貯器的20位物理地址的最高4位地址(A16A19),與AD15AD0一起構成訪問存貯器的20位物理地址。當CP

40、U訪問I/O端口時,A19A16保持為“0”.在其他時鐘周期,則用來輸出狀態信息。其中S6為0,用來指示8086CPU當前正與總線相連。S5狀態用來指示中斷允許標志位IF的當前設置:若IF=1,表示當前允許可屏蔽中斷請求;若IF=0,則禁止可屏蔽中斷請求。S4、S3的代碼組合用來指示CPU當前正在使用哪個段寄存器。S4 S3當前使用的段寄存器0 0ES0 1SS1 0CS1 1DS3.控制總線 :高8位數據總線允許/狀態復用引腳,三態輸出,低電平有效,在總線周期的第一個時鐘周期T1用來表示總線高8位AD15AD8上的數據有效。若/BHE/S7 = 1,表示僅在數據總線AD7AD0上傳送數據。讀

41、/寫存貯器或I/O端口以及中斷響應時, 用作選體信號,與最低位地址碼A0配合,表示當前總線的使用情況。 7/SBHE A0總線使用情況0 0在16位上數據總線上進行字傳送0 1在高8位數據總線上進行字節傳送(訪問奇地址存貯器單元)1 0在低8位數據總線上進行字節傳送(訪問偶地址存貯單元)1 1無效7/SBHE/RD:讀信號,三臺輸出。當 =0,表示當前CPU正在對存儲器或I/O端口進行讀操作。 =0與M/ 信號高電平配合,表示讀存儲器操作; 與 M/ 信號低電平配合,表示讀I/O端口操作。/WR:寫信號,三態輸出。當為0時,表示當前CPU正在對存貯器或I/O端口進行寫操作。與 讀信號一樣,由M

42、/ 信號區分對存貯器或I/O端口訪問。M/IO:存貯器或I/O端口選擇控制信號,三態輸出。當=1,表示當前CPU正在訪問存貯器;=0,表示CPU當前正在訪問I/O端口。一般在前一個總線周期的T4時鐘周期,就使它產生有效電平,然后開始一個新的總線周期。在此新的總線周期中,他一直保持有效電平,直至本總線周期的T4時鐘周期為止。在DMA方式時,他被懸空,為高阻態。READY:準備就緒信號,輸入,高電平有效。=1時,表示CPU訪問的存貯器或I/O端口已準備好傳送數據,馬上可以進行讀/寫操作。若CPU在總線周期T3狀態檢測到READY信號低電平,表示存貯器或I/O設備尚未準備就緒,CPU自動插入一個或多

43、個等待狀態TW,直到READY信號變為高電平為止。INTR:可屏蔽中斷請求信號,輸入,電平觸發,高電平有效。當=1時,表示外設向CPU發出中斷請求,CPU在每個指令周期的最后一個T狀態去采樣該信號,若=1且IF=1時,則CPU就會在結束當前指令后去響應中斷,轉去執行中斷服務程序。/INTA:中斷響應信號,輸出,低電平有效。表示CPU響應了外設發來的中斷申請信號INTR。NMI:不可屏蔽中斷請求信號,輸入,上升沿觸發。該請求信號不受IF狀態的影響,也不能用軟件屏蔽,一旦該信號有效,則執行完當前指令后立即響應中斷。/TEST:測試信號,輸入,低電平有效。當CPU執行WAIT指令時,每隔個時鐘周期對

44、/TEST進行一次測試,若/TEST=1,繼續等待,直到/TEST=0。RESET:復位信號,輸入,高電平有效。RESET信號至少要保持4個時鐘周期。復位時:標志寄存器、IP、DS、SS、ES為0,CS=FFFFH,復位后CPU從FFFF0H處開始 執行。ALE:地址鎖存允許信號,輸出,高電平有效。用來鎖存地址信號A15-A0,分時使用AD15-AD0地址/數據總線。DT/R:數據發送/接收控制信號,三態輸出。此信號控制數據總線上的收發器8286的數據傳送方向,DT/R=1,發送數據-寫操作;DT/R=0,接收數據-讀操作。/DEN:數據允許信號,三態輸出,低電平有效。作為數據總線上收發器82

45、86的選通信號。HOLD:總線請求信號,輸入,高電平有效。當系統中CPU之外的另一個控制器要求使用總線時,通過它向CPU發一高電平的請求信號。HLDA:總線請求響應信號,輸出,高電平有效。當HLDA有效時,表示CPU對其它控制器的總線請求作出響應,與此同時,所有與三總線相接的CPU的線腳呈現高阻抗狀態,從而讓出總線。MN/MX:工作模式選擇信號,輸入。MN/MX=1,表示CPU工作在最小模式系統;MN/MX=0,表示CPU工作在最大模式系統。CLK:主時鐘信號,輸入。8086/8088的時鐘頻率為5MHZ。4.最大模式下的引腳功能S2、S1、S0:總線周期狀態信號,三態輸出。 S2、S1、S0

46、狀態信號的編碼 S2 S1 S0 操作過程 產生信號 0 0 0 發中斷響應信號 /INTA 0 0 1 讀I/O端口 IORC 0 1 0 寫I/O端口 IOWC 0 1 1 暫停 無 1 0 0 取指令 /MRDC 1 0 1 讀存儲器 /MRDC 1 1 0 寫存儲器 /AMWC 1 1 1 無作用 無/RQ/GT1、/RQ/GT2:總線請求信號(輸入)/總線請求允許信號(輸出),雙向,低電平有效。/LOCK:總線封鎖信號,三態輸出,低電平有效。/LOCK=0,CPU不允許其它控制器占用總線。QS1、QS2:指令隊列狀態信號,輸出。 QS1 QS2 含義 0 0 無操作 0 1 將指令首

47、字節送入指令隊 1 0 隊列為空 1 1 將指令其余字節送指令隊列5.電源線VCC和地線GNDVCC=5V,GND接地1.4.3 8086/8088CPU的存貯器組織和I/O組織1.存貯器組織及其尋址 8086/8088CPU可尋址1MB的存儲單元,在此存儲空間中是以8位為一字節順序排列存放的。每一個字節用唯一的一個地址碼標識。將存儲器空間按字節地址號順序排列的方式稱為字節編制。 字節數據:數據位數位8位,對應的字節地址可以是偶地址(地址的最低位A0=0),也可以是奇地址(A0=1)。當存取此字節數據時,只需給出對應的實際地址即可。 字數據:它是將連續存放的2個字節數據構成一個16位的字數據。

48、規定字的高8位字節存放在高地址,字的低8位字節存放在低地址。同時規定將低位字節的地址作為這個字的地址。 通常情況下,一個字數據總是位于偶地址,即偶地址對應低位字節,奇地址對應高位字節,符合這種規則存放的字數據稱為規則字。(存放在奇地址的是非規則字) 8086CPU的BIU是這樣設計的:若存取一個字節的數據,總是用一個總線周期來完成字節操作;若存取一個字,則根據該字是規則字還是非規則字分別用一個或兩個總線周期來完成此存取操作。 雙字數據:此數據要占用4個字節,用以保存連續的兩個字。通常此類數據用于地址指針,指示一個當前可段外尋址的某段數據。以指針的高位字存放該數據所在段的基地址,而低位字存放該數

49、據所在段內的偏移量。在存放低位字或高位字時,高位字位于高地址,低位字位于低地址。例:在00200H地址中存放一個雙字數據1122H:3344H,該雙字指示了某數所存放的邏輯地址即段地址和偏移地址。該雙字存放地址為00200H00203H,連續4個字節依次存放的內容為44H、33H、22H、11H。該數據實際的存放地址為11220H+3344H=14564H 雙字數據是以字為單位,故,它的地址以最低位字節地址作為它的地址。 8086系統的1M存貯器分為兩個庫,每個庫的容量都是512KB。其中和數據總線D15D8相連的庫全部由奇地址單元組成,稱為高位字節庫或奇地址庫,利用/BHE信號低電平作為此庫

50、的選擇信號;另一個庫和數據總線D7D0相連接,由偶地址單元組成,稱為低位字節庫或偶地址庫,利用地址線A0=0(低電平)作為此庫的選擇信號。所以只有A19A1個地址線用來做為兩個庫內的存貯單元的尋址信號。 規則字的存取操作可以在一個總線周期中完成。由于地址線A19A1是同時連接在兩個庫上的,只要/BHE和A0信號同時有效,就可以一次實現在兩個庫中對一個字(高低兩字節)完成存取操作。對字的存取操作所需的/BHE及A0信號是由字操作指令給出的。 對非規則字的存取操作需要兩個總線周期才能完成。在第一個總線周期中,CPU存取數據(低位字節)時是在高位庫中,此時A0=1,/BHE=0.然后再將存貯器地址加

51、1,使A0=0,選中低位庫。在第二個總線周期中,存取數據(高位字節)時是在低位庫中,此時A0=0,/BHE=1。 對于8088CPU,由于數據總線是8位,無論是字還是字節數據的存取操作,每個總線周期只能完成一個字節的數據存取操作。2.8086/8088的I/O組織每個I/O接口都有一個端口或幾個端口。在微機系統中給每個端口分配一個地址,稱為端口地址。一個端口通常為I/O接口電路內部的一個寄存器或一組寄存器。8086/8088CPU利用地址總線的低16位作為對8位I/O端口的尋址線,故8086/8088系統可訪問的8位I/O端口最多64K個。兩個編號相鄰的8位端口可以組合成一個16位的端口。 一

52、個8位的I/O設備既可以連接在數據總線的高8位上,也可以連接在數據總線的低8位上。當一個I/O設備接在數據地址低8位(AD0AD7)上的時候,這個I/O設備包含的所有端口地址都將是偶地址(A0=0);若一個I/O設備是接在數據地址總線的高8位(AD8AD15),那么此設備包含的所有端口都是奇地址(A0=1);如果某種特殊I/O設備即可使用偶地址又可使用奇地址,那么用A0和/BHE一起作為I/O設備的選擇線。防止對I/O設備的錯誤操作。1.4.4 8086CPU內部時序 8086CPU的操作是在單向時鐘脈沖CLK的統一控制下進行的。若時鐘頻率為5MHZ,則時鐘周期為200ns. 8086CPU執

53、行一條指令需要的時間稱為一個指令周期。一個指令周期由若干個總線周期組成,一個總線周期由若干個時鐘周期組成。 一個總線周期是指CPU通過總線與外部邏輯進行一次訪問所需要的時間,8086的基本總線周期是由4個時鐘周期組成。典型的總線周期有存貯器讀周期、存貯器寫周期、I/O設備的輸入周期、I/O設備的輸出周期、中斷響應周期和空閑周期等。(最小模式)1.讀周期時序 在T1周期時: M/IO信號:從存儲器讀還是從I/O設備中讀數據; AD15-AD0、A19/S7-A16/S3:確定20位地址; /BHE:選擇奇地址存儲體選擇。 ALE:地址鎖存信號,以使地址/數據線分開。 在T2周期時: A19/S6

54、-A16/S3:出現S6-S3狀態信號。決定段寄存器、IF狀態、8086CPU是否連在總線上。 AD15-AD0:高阻狀態。 /RD:由高電平變為低電平,開始進行讀操作。 /DEN:變低電平,啟動收發器8268,做好接收數據的準備。 在T3周期時: 若存儲器或I/O端口已做好發送數據準備,則在T3狀態期間將數據放到數據總線上,在T3結束時,CPU從AD15-AD0上讀取數據。 TW周期時: 在T3狀態,存儲器或外設沒有準備好數據,不能在T3狀態將數據放到總線上,使READY=0,則CPU在T3和T4之間插入一個或幾個TW狀態,直到數據準備好READY=1為止。 TW狀態時總線的動作與T3時相同

55、。 T4周期時: CPU對數據總線進行采樣,讀出數據。在T4狀態結束,其他各控制信號和狀態信號進入無效狀態。/DEN=1,關閉8286。下一個總線周期可能在T4狀態結束后立即開始,也可能在T4結束后出現若干個空閑狀態T1,這取決于BIU何時需要進入下一個總線周期。2.寫周期時序: T1狀態 M/IO信號:對存儲器寫還是對I/O設備中寫數據; AD15-AD0、A19/S7-A16/S3:確定20位地址; /BHE:選擇奇地址存儲體選擇。 ALE:地址鎖存信號,以使地址/數據線分開。 DT/R:為高電平,指示收發器8286發送數據,寫操作。 T2狀態 A19/S6-A16/S3:出現S6-S3狀

56、態信號。決定段寄存器、IF狀態、8086CPU不否連在總線上。 AD15-AD0:發出16位數據。 /WR:由高電平變為低電平,開始進行寫操作。 /DEN:變低電平,啟動收發器8268,做好發送數據的準備。 T3狀態 若存儲器或I/O端口已做好接收數據準備,則在T3狀態期間將數據放到數據總線上,在T3結束時,CPU將AD15-AD0上數據寫入到存儲器或I/O設備中。 TW狀態 在T3狀態,存儲器或外設沒有準備好接收數據,使READY=0,則CPU在T3和T4之間插入一個或幾個TW狀態,直到設備準備好READY=1為止。 T4狀態 在T4狀態,數據從數據總線上被撤除,各種控制信號和狀態信號進入無

57、效狀態,CPU完成了對存儲器或I/O設備的寫操作。 讀、寫周期時序的不同:DT/R=1寫入單元的地址以及ALE信號有效,但寫入存儲器的數據是在T2狀態中放至數據線AD15AD0上的。原因是CPU不需要將AD15AD0總線由輸出方式轉變為輸入方式。/WR=1在T2。3.中斷響應周期 當外部中斷源通過INTR引線向CPU發出中斷請求信號時,如果中斷標志位IF=1,則CPU在完成當前指令操作之后,響應外部中斷源的中斷請求,進入中斷響應周期。 中斷響應周期包括兩個總線周期,在每個總線周期中都從/INTA端輸出一個負脈沖,其寬度從T2開始到T4的開始,在第一個中斷響應周期中,利用/INTA負脈沖來通知中

58、斷源,CPU準備響應中斷,中斷源應準備好中斷類型號,并且使AD7AD0浮空。 第二個中斷響應周期的/INTA負脈沖期間,被響應的外設應立即把中斷源的中斷類型號送到數據總線的低8位AD7AD0上,CPU把它讀入后,則可從中斷向量表中找到該設備的中斷服務程序的入口地址,從而轉入中斷服務。 注意:INTR必須保持維持兩個時鐘周期。軟件中斷和非屏蔽NMI中斷的響應,并不從外設讀取中斷類型號。4.I/O總線周期 與存儲器通信時序幾乎相同。 M/IO在規定有效地4個T周期中將呈低電平;另外,由于I/O的尋址空間為64KB,所以高4位地址線輸出為0.同時在處理字節與字讀寫時,也與存貯器一樣,要利用/BHE和

59、A0的狀態組合。 I/O設備對數據的讀寫有時比較慢,要在總線周期中加入適量的TW周期。5.空閑周期 若CPU不執行總線周期,則總線接口執行空閑周期(即一系列的T1狀態)第二章 8088/8086及Pentium指令系統2.1 8088/8086的尋址方式主要內容:1.立即尋址 2.寄存器尋址 3.直接尋址 4.寄存器間接尋址 5.變址尋址 6.基址加變址尋址重點和難點:以上6點要求:熟悉學時:1.5學時 指令通常包含操作碼和操作數場兩部分。操作碼指示計算機執行什么操作,操作數場指明參加操作的數或者它所在的地址。 如何尋找參加操作的數即是尋址方式的問題。 微機中操作數的來源有以下3種:操作數就包

60、含在指令中,即指令的操作數場就包含著操作數本身操作數在CPU的某個寄存器中操作數在內存的數據區中,這時指令中的操作數場包含著操作數所在地址的信息。2.1.1 立即尋址 指令操作數部分直接給出指令的操作數,操作數與操作碼一起存入代碼段中。立即數有8位和16位。例 :MOV AL,5 ;源操作數為立即尋址指令執行后,AL=05H,8位數據05H存入AL寄存器。 例 :MOV AX,3064H ;源操作數為立即尋址指令執行后,AX=3064H,16位數據3064H存入AX寄存器。 注意:立即尋址方式只能出現在源操作數的尋址中,目的操作數不能采用此種方式。2.1.2 寄存器尋址 寄存器尋址方式的操作數

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論