微機原理與接口技術pp版本第3章_第1頁
微機原理與接口技術pp版本第3章_第2頁
微機原理與接口技術pp版本第3章_第3頁
微機原理與接口技術pp版本第3章_第4頁
微機原理與接口技術pp版本第3章_第5頁
已閱讀5頁,還剩116頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第3章章 微微 處處 理理 器器3.1 8086/8088微處理器微處理器3.2 8086總線的操作時序總線的操作時序3.3 從從80286到到Pentium微處理器結構的變化微處理器結構的變化3.4 80 x86的工作方式的工作方式習題習題3.1 80868088微處理器微處理器3.1.1 8086/8088微處理器的結構及執(zhí)行程序的操作過程微處理器的結構及執(zhí)行程序的操作過程8086 CPU是是Intel系列的系列的16位微處理器,它有位微處理器,它有16根數(shù)據(jù)根數(shù)據(jù)線和線和20根地址線,所以可尋址的地址空間是根地址線,所以可尋址的地址空間是2201MB。8088 CPU是準是準16位微處

2、理器,它的內(nèi)部寄存器、內(nèi)部位微處理器,它的內(nèi)部寄存器、內(nèi)部運算部件以及內(nèi)部操作都是按運算部件以及內(nèi)部操作都是按16位設計的,但對位設計的,但對外的數(shù)據(jù)總線只有外的數(shù)據(jù)總線只有8位,在處理一個位,在處理一個16位數(shù)據(jù)時,位數(shù)據(jù)時,8088需要兩步操作,因而稱需要兩步操作,因而稱8088是準是準16位微處理位微處理器。器。本章中關于本章中關于8086 CPU的內(nèi)部結構是從指令的執(zhí)行全過的內(nèi)部結構是從指令的執(zhí)行全過程來討論的,即是從程序員和使用者的角度看到程來討論的,即是從程序員和使用者的角度看到的結構。這種結構與的結構。這種結構與8086真正的物理結構有所區(qū)真正的物理結構有所區(qū)別,因而又稱下面將要

3、討論的別,因而又稱下面將要討論的8086 CPU的內(nèi)部結的內(nèi)部結構為編程結構。構為編程結構。8086 CPU從功能上可分為兩部分,總線接口部件從功能上可分為兩部分,總線接口部件(BIU)和執(zhí)行部件和執(zhí)行部件(EU)。其內(nèi)部結構如圖其內(nèi)部結構如圖3.1所示。所示。1. 總線接口部件總線接口部件總線接口部件的功能是:總線接口部件的功能是: (1) 從內(nèi)存取指令送到指令隊列;從內(nèi)存取指令送到指令隊列;(2) CPU執(zhí)行指令時,總線接口部件要配合執(zhí)行部件執(zhí)行指令時,總線接口部件要配合執(zhí)行部件從指定的內(nèi)存單元或者外設端口取數(shù)據(jù),或?qū)?shù)從指定的內(nèi)存單元或者外設端口取數(shù)據(jù),或?qū)?shù)據(jù)送到指定的內(nèi)存單元或者外設

4、的端口。據(jù)送到指定的內(nèi)存單元或者外設的端口??偩€接口部件由下列各部分組成:總線接口部件由下列各部分組成: (1) 四個段地址寄存器,即四個段地址寄存器,即CS,16位代碼段寄存器;位代碼段寄存器;DS,16位數(shù)據(jù)段寄存器;位數(shù)據(jù)段寄存器;ES,16位附加段寄存器;位附加段寄存器;SS,16位堆棧段寄存器。位堆棧段寄存器。(2) 16位指令指針寄存器位指令指針寄存器IP。(3) 20位的地址加法器。位的地址加法器。(4) 六字節(jié)的指令隊列緩沖器。六字節(jié)的指令隊列緩沖器。80868088的的BIU指令隊列和指令隊列和20位地址加法器的作用:位地址加法器的作用: (1) 8086的指令隊列緩沖器為六

5、個字節(jié),的指令隊列緩沖器為六個字節(jié),8088的指令的指令隊列緩沖器為四個字節(jié)。無論隊列緩沖器為四個字節(jié)。無論8086還是還是8088,都,都會在執(zhí)行指令的同時,從內(nèi)存中取下一條指令或會在執(zhí)行指令的同時,從內(nèi)存中取下一條指令或幾條指令,取來的指令就放在指令隊列緩沖器中。幾條指令,取來的指令就放在指令隊列緩沖器中。圖圖3.1這樣,一般情況下,這樣,一般情況下,CPU執(zhí)行完一條指令就可以立執(zhí)行完一條指令就可以立即執(zhí)行下一條指令,稱為流水線技術,減少了即執(zhí)行下一條指令,稱為流水線技術,減少了CPU為取指令而等待的時間,從而提高了為取指令而等待的時間,從而提高了CPU的的效率。效率。(2) 地址加法器用

6、來產(chǎn)生地址加法器用來產(chǎn)生20位地址。上面已提到位地址。上面已提到8086可用可用20位地址尋址位地址尋址1MB的內(nèi)存空間,但的內(nèi)存空間,但8086內(nèi)部內(nèi)部所有的寄存器都是所有的寄存器都是16位的,所以需要一個附加的位的,所以需要一個附加的機構來根據(jù)機構來根據(jù)16位寄存器提供的信息計算出位寄存器提供的信息計算出20位的位的物理地址,這個機構就是物理地址,這個機構就是20位的地址加法器。位的地址加法器。2. 執(zhí)行部件執(zhí)行部件執(zhí)行部件執(zhí)行部件(EU)的作用是:的作用是: (1) 從指令隊列中取出指令;從指令隊列中取出指令;(2) 對指令進行譯碼,發(fā)出相應的傳送數(shù)據(jù)或算術運對指令進行譯碼,發(fā)出相應的傳

7、送數(shù)據(jù)或算術運算的控制信號;算的控制信號;(3) 接收由總線接口部件傳送來的數(shù)據(jù),或把數(shù)據(jù)傳接收由總線接口部件傳送來的數(shù)據(jù),或把數(shù)據(jù)傳送到總線接口部件;送到總線接口部件;(4) 進行算術運算。進行算術運算。執(zhí)行部件由下列部分組成:執(zhí)行部件由下列部分組成: (1) 四個通用寄存器四個通用寄存器AX,BX,CX,DX四個通用寄存器既可作為四個通用寄存器既可作為16位寄存器用,也可以作位寄存器用,也可以作為為8位寄存器使用,分別為位寄存器使用,分別為AH,AL,BH,BL,CH,CL,DH,DL。AX寄存器又稱為累加器,寄存器又稱為累加器,8086指令系統(tǒng)中有許多指指令系統(tǒng)中有許多指令都通過累加器的

8、動作來執(zhí)行。令都通過累加器的動作來執(zhí)行。AX為為16位累加器,位累加器,AL為為8位累加器。位累加器。(2) 專用寄存器專用寄存器4個專用寄存器,基址指針寄存器個專用寄存器,基址指針寄存器BP,堆棧指針寄存堆棧指針寄存器器SP,源變址寄存器源變址寄存器SI,目的變址寄存器目的變址寄存器DI。4個專用寄存器的用法將在指令系統(tǒng)有專門的論述。個專用寄存器的用法將在指令系統(tǒng)有專門的論述。(3) 算術邏輯單元算術邏輯單元ALU它是它是16位的運算器,可用于位的運算器,可用于8位或位或16位二進制算術和位二進制算術和邏輯運算,也可按指令的尋址方式計算尋址存儲邏輯運算,也可按指令的尋址方式計算尋址存儲器所需

9、的器所需的16位偏移量。位偏移量。(4) 數(shù)據(jù)暫存寄存器數(shù)據(jù)暫存寄存器它協(xié)助它協(xié)助ALU完成運算,暫存參加運算的數(shù)據(jù)。完成運算,暫存參加運算的數(shù)據(jù)。(5) EU控制電路控制電路從總線接口的指令隊列取出指令操作碼,通過譯碼從總線接口的指令隊列取出指令操作碼,通過譯碼電路分析,發(fā)出相應的控制命令,控制電路分析,發(fā)出相應的控制命令,控制ALU數(shù)據(jù)數(shù)據(jù)的流向。如果是運算操作,操作數(shù)經(jīng)過暫存寄存的流向。如果是運算操作,操作數(shù)經(jīng)過暫存寄存器送入器送入ALU,運算結果經(jīng)過運算結果經(jīng)過ALU數(shù)據(jù)總線送到相數(shù)據(jù)總線送到相應的寄存器,同時標志寄存器應的寄存器,同時標志寄存器F根據(jù)運算結果改變根據(jù)運算結果改變狀態(tài)。

10、狀態(tài)。(6) 標志寄存器標志寄存器標志寄存器共有標志寄存器共有16位,其中位,其中7位未用,所用的各位含義如位未用,所用的各位含義如圖圖3.2所示。所示。其中其中6個標志位反映個標志位反映CPU指令運行后的運行狀態(tài)信息,分指令運行后的運行狀態(tài)信息,分別為別為SF、ZF、PF、CF、AF和和OF。這些標志位用于這些標志位用于根據(jù)指令執(zhí)行后的操作結果進行判斷轉移。根據(jù)指令執(zhí)行后的操作結果進行判斷轉移。3個控制標個控制標志,分別為志,分別為DF、IF和和TF??刂茦酥究捎删幊虇T通過指控制標志可由編程員通過指令進行設置,有專門的指令對控制標志置令進行設置,有專門的指令對控制標志置0或置或置1。下面舉例

11、說明運算結果對標志位的作用。下面舉例說明運算結果對標志位的作用。例例3.1將下面兩個數(shù)進行加法運算,看標志位的變化情將下面兩個數(shù)進行加法運算,看標志位的變化情況。況。0010 0011 0100 0101+) 0011 0010 0001 10010101 0101 0101 1110SF0, 因為最高位為因為最高位為0;ZF0, 因為運算結果不為因為運算結果不為0;PF0, 因為低因為低8位運算結果位運算結果01011110是奇數(shù)個是奇數(shù)個1;CF0, 因為最高位無有進位;因為最高位無有進位;AF0, 因為因為D3位沒有向位沒有向D4位產(chǎn)生進位;位產(chǎn)生進位;OF0, 由于由于D14位沒向位沒

12、向D15位產(chǎn)生進位,位產(chǎn)生進位,D15位也位也沒有進位。沒有進位。這里要特別指出的是溢出標志的使用。這里要特別指出的是溢出標志的使用。圖圖3.2當字節(jié)運算的結果超出了范圍當字節(jié)運算的結果超出了范圍128127,或者,或者當字運算的結果超出范圍當字運算的結果超出范圍3276832767時稱為時稱為溢出。當計算機進行加法運算時,每當判斷出次溢出。當計算機進行加法運算時,每當判斷出次高位向最高位產(chǎn)生進位,而最高位沒有進位時,高位向最高位產(chǎn)生進位,而最高位沒有進位時,便知產(chǎn)生了溢出,于是便知產(chǎn)生了溢出,于是OF1;或者反過來,每當或者反過來,每當判斷出次高位向最高位無進位,而最高位卻往前判斷出次高位向

13、最高位無進位,而最高位卻往前有進位時,便知也產(chǎn)生了溢出,于是有進位時,便知也產(chǎn)生了溢出,于是OF1。在減在減法運算時,每當判斷出次高位需要借位,而次高法運算時,每當判斷出次高位需要借位,而次高位沒向最高位產(chǎn)生借位時產(chǎn)生溢出,位沒向最高位產(chǎn)生借位時產(chǎn)生溢出,OF置置1;或者;或者反過來,次高位向最高位有借位,而最高位并不反過來,次高位向最高位有借位,而最高位并不需向更高位借位時產(chǎn)生溢出,需向更高位借位時產(chǎn)生溢出,OF置置1。對于有符號數(shù)的運算,利用溢出標志對于有符號數(shù)的運算,利用溢出標志OF和符號標志和符號標志SF可判斷數(shù)值的大小,下面舉例說明。可判斷數(shù)值的大小,下面舉例說明。例例3.2將將12

14、5和和-5進行減法運算,看標志位的變化情進行減法運算,看標志位的變化情況。況。125-(-5)=135125的原碼:的原碼: 01111101-5的補碼:的補碼: 11111011 01111101 -)11111011 10000010SF1因為最高位為因為最高位為1,運算結果為負數(shù)。,運算結果為負數(shù)。OF1因因D6向向D7無借位,但無借位,但D7向更高位有借位。向更高位有借位。對于有符號數(shù),一個字節(jié)運算范圍為對于有符號數(shù),一個字節(jié)運算范圍為128127,此數(shù)結果為此數(shù)結果為135超出范圍,所以溢出標志超出范圍,所以溢出標志OF1,得出正數(shù)減負數(shù)得負數(shù)的錯誤結果。得出正數(shù)減負數(shù)得負數(shù)的錯誤結

15、果??梢赃@樣考慮這個問題,當可以這樣考慮這個問題,當OF0時,無溢出,計算的數(shù)據(jù)時,無溢出,計算的數(shù)據(jù)正確,所以若正確,所以若SF0,運算結果為正數(shù),那么被減數(shù)大于減運算結果為正數(shù),那么被減數(shù)大于減數(shù),若數(shù),若SF1,運算結果為負數(shù),那么被減數(shù)小于減數(shù);而運算結果為負數(shù),那么被減數(shù)小于減數(shù);而當當OF1時,產(chǎn)生溢出,計數(shù)結果不正確了,所以時,產(chǎn)生溢出,計數(shù)結果不正確了,所以SF0時,時,得到錯誤的正數(shù)結果,那么被減數(shù)小于減數(shù);當?shù)玫藉e誤的正數(shù)結果,那么被減數(shù)小于減數(shù);當SF1時,時,得到錯誤的負數(shù)結果,那么被減數(shù)大于減數(shù)。得到錯誤的負數(shù)結果,那么被減數(shù)大于減數(shù)。下面再舉兩個例子說明利用下面再舉

16、兩個例子說明利用OF、SF如何判斷數(shù)的大小。如何判斷數(shù)的大小。例例3.3設被減數(shù)設被減數(shù)AL7,減數(shù)減數(shù)BL8,執(zhí)行執(zhí)行AL-BL后,根據(jù)標后,根據(jù)標志位判斷志位判斷AL、BL的大小。的大小。7的補碼:的補碼: 000001118的補碼:的補碼: 00001000 00000111 -)00001000 11111111OF0因為因為D6向向D7有借位,有借位,D7向更高位也有借位;向更高位也有借位;SF1因為最高位為因為最高位為1,是負數(shù),是負數(shù)1;所以所以ALBL。是否正確呢?我們把運算結果的補碼形式是否正確呢?我們把運算結果的補碼形式11111111轉轉換成原碼換成原碼100000011

17、,可看出此結果正確。,可看出此結果正確。例例3.4設被減數(shù)設被減數(shù)AL125,減數(shù)減數(shù)BL50,執(zhí)行執(zhí)行AL-BL后,根據(jù)標志位判斷后,根據(jù)標志位判斷AL、BL的大小。的大小。-125的補碼:的補碼: 1000001150的補碼:的補碼: 00110010 10000011 -) 00110010_ 01010001OF1因因D6向向D7有借位,但有借位,但D7向更高位無借位;向更高位無借位;SF0為正數(shù);為正數(shù);所以所以ALBL。負數(shù)減正數(shù),應該是負數(shù),但運算結果卻是正數(shù),負數(shù)減正數(shù),應該是負數(shù),但運算結果卻是正數(shù),所以所以OF1,指出運算結果溢出,得出負數(shù)減正數(shù)指出運算結果溢出,得出負數(shù)減

18、正數(shù)得正數(shù)的錯誤結果。在得正數(shù)的錯誤結果。在OF1的情況下,的情況下,SF0,ALBL。3. 80868088 CPU執(zhí)行程序的操作過程執(zhí)行程序的操作過程(1) 總線接口部件在代碼段寄存器總線接口部件在代碼段寄存器CS中取出中取出16位的段位的段地址,再從指令指針寄存器地址,再從指令指針寄存器IP中取出中取出16位偏移地位偏移地址,經(jīng)地址加法器形成址,經(jīng)地址加法器形成20位地址,把該地址送上位地址,把該地址送上地址總線,并找到該地址所在的內(nèi)存單元,從該地址總線,并找到該地址所在的內(nèi)存單元,從該內(nèi)存單元開始取出一些指令字節(jié),依次放入指令內(nèi)存單元開始取出一些指令字節(jié),依次放入指令隊列中。隊列中。這

19、些指令按先進先出的原則存放,并按先進先出的這些指令按先進先出的原則存放,并按先進先出的順序被執(zhí)行部件執(zhí)行。順序被執(zhí)行部件執(zhí)行。(2) 每當每當8086的指令隊列中有的指令隊列中有2個空字節(jié),或者個空字節(jié),或者8088的的指令隊列中有指令隊列中有1個空字節(jié)時,總線接口部件就會自個空字節(jié)時,總線接口部件就會自動從內(nèi)存單元中取指令放到指令隊列中。動從內(nèi)存單元中取指令放到指令隊列中。(3) 執(zhí)行部件從總線接口部件的指令隊列隊首取出指執(zhí)行部件從總線接口部件的指令隊列隊首取出指令的代碼,用幾個時鐘周期去執(zhí)行指令。在執(zhí)行令的代碼,用幾個時鐘周期去執(zhí)行指令。在執(zhí)行指令的過程中,如果必須訪問存儲器或者輸入指令的

20、過程中,如果必須訪問存儲器或者輸入輸出設備,執(zhí)行部件就會請求總線接口部件進入輸出設備,執(zhí)行部件就會請求總線接口部件進入總線周期去完成訪問內(nèi)存或者輸入輸出端口的總線周期去完成訪問內(nèi)存或者輸入輸出端口的操作;如果此時總線接口部件正好處于空閑狀態(tài),操作;如果此時總線接口部件正好處于空閑狀態(tài),那么,會立即響應執(zhí)行部件的總線請求。那么,會立即響應執(zhí)行部件的總線請求。但有時會遇到這種情況,執(zhí)行部件請求總線接口部件訪問總但有時會遇到這種情況,執(zhí)行部件請求總線接口部件訪問總線時,總線接口部件正在將某個指令取到指令隊列中,此線時,總線接口部件正在將某個指令取到指令隊列中,此時總線接口部件將首先完成這個取指指令的

21、總線周期,然時總線接口部件將首先完成這個取指指令的總線周期,然后再去響應執(zhí)行部件發(fā)出的訪問總線的請求。后再去響應執(zhí)行部件發(fā)出的訪問總線的請求。(4) 當指令隊列已滿,而且執(zhí)行部件對總線接口部件又沒有總當指令隊列已滿,而且執(zhí)行部件對總線接口部件又沒有總線訪問請求時,總線接口部件便進入空閑狀態(tài)。線訪問請求時,總線接口部件便進入空閑狀態(tài)。(5) 在執(zhí)行轉移指令、調(diào)用指令和返回指令時,下面要執(zhí)行的在執(zhí)行轉移指令、調(diào)用指令和返回指令時,下面要執(zhí)行的指令就不是在程序中緊接著排列的那條指令了,而總線接指令就不是在程序中緊接著排列的那條指令了,而總線接口部件往指令隊列中裝入指令時,總是按程序中指令排列口部件往

22、指令隊列中裝入指令時,總是按程序中指令排列的先后順序進行的,這樣,指令隊列中已經(jīng)裝入的字節(jié)就的先后順序進行的,這樣,指令隊列中已經(jīng)裝入的字節(jié)就沒用了。碰到這種情況,指令隊列中原有的內(nèi)容被清除,沒用了。碰到這種情況,指令隊列中原有的內(nèi)容被清除,總線接口部件會接著向指令隊列中裝入另一個程序段中的總線接口部件會接著向指令隊列中裝入另一個程序段中的指令。指令。3.1.2 80868088系統(tǒng)存儲器的組織系統(tǒng)存儲器的組織由于由于80868088 CPU有有20條地址線,能直接訪問的條地址線,能直接訪問的存儲空間為存儲空間為1MB,因此,每個存儲單元所對應的因此,每個存儲單元所對應的地址是地址是20位的,

23、而寄存器的位數(shù)是位的,而寄存器的位數(shù)是16位的,如何位的,如何用用16位的寄存器指向位的寄存器指向20位的存儲單元是下面主要位的存儲單元是下面主要論述的問題。論述的問題。1. 存儲器的段結構存儲器的段結構因為因為80868088內(nèi)部寄存器是內(nèi)部寄存器是16位的,能尋址的內(nèi)位的,能尋址的內(nèi)存空間只能是存空間只能是64KB,所以所以80868088系統(tǒng)采用了系統(tǒng)采用了地址分段的方法,將地址分段的方法,將1M空間分段,每段最多空間分段,每段最多64KB,在段內(nèi)尋址仍可采用傳統(tǒng)的在段內(nèi)尋址仍可采用傳統(tǒng)的16位地址尋址方法。位地址尋址方法。每個段的起始地址低每個段的起始地址低4位必須為位必須為0,高,高

24、16位放在位放在16位的段寄存器內(nèi),這高位的段寄存器內(nèi),這高16位地址稱為段基址。段位地址稱為段基址。段寄存器分別為寄存器分別為CS、DS、SS和和ES,段基址存放在這段基址存放在這4個段寄存器內(nèi)。個段寄存器內(nèi)。每個段不一定都是每個段不一定都是64KB,可以小于它,每個段可以可以小于它,每個段可以分開,也可以重疊。分開,也可以重疊。2. 物理地址的形成物理地址的形成物理地址是指物理地址是指CPU和存儲器進行數(shù)據(jù)交換時實際所和存儲器進行數(shù)據(jù)交換時實際所使用的地址。它由兩部分組成:使用的地址。它由兩部分組成: 段基址和偏移地段基址和偏移地址。段基址由段寄存器給出,偏移地址是指所要址。段基址由段寄存

25、器給出,偏移地址是指所要訪問的內(nèi)存單元離段起始地址的偏移距離,一般訪問的內(nèi)存單元離段起始地址的偏移距離,一般由由IP、DI、SI、BP、SP等等16位寄存器給出。當位寄存器給出。當CPU尋址某個存儲單元時,先將段寄存器的內(nèi)容尋址某個存儲單元時,先將段寄存器的內(nèi)容左移左移4位,然后加上指令中提供的位,然后加上指令中提供的16位偏移地址而位偏移地址而形成形成20位物理地址。位物理地址。20位物理地址的計算方法如位物理地址的計算方法如圖圖3.3所示。訪問代碼段內(nèi)的指令,訪問數(shù)據(jù)段或所示。訪問代碼段內(nèi)的指令,訪問數(shù)據(jù)段或堆棧段內(nèi)的數(shù)據(jù)所用的段寄存器和存放偏移地址堆棧段內(nèi)的數(shù)據(jù)所用的段寄存器和存放偏移地

26、址的寄存器之間的組合如圖的寄存器之間的組合如圖3.4所示。所示。圖圖3.3圖圖3.43. 8086系統(tǒng)存儲區(qū)的分配系統(tǒng)存儲區(qū)的分配(1) 00000H003FFH共共1KB區(qū)域用來存放中斷矢量,這區(qū)域用來存放中斷矢量,這一區(qū)域稱為中斷矢量表。中斷矢量表的定義和作用參一區(qū)域稱為中斷矢量表。中斷矢量表的定義和作用參閱中斷一章的有關內(nèi)容。閱中斷一章的有關內(nèi)容。(2) B0000HB0F9FH是單色顯示器的顯示緩沖區(qū),存放是單色顯示器的顯示緩沖區(qū),存放單色顯示器當前屏幕顯示字符所對應的單色顯示器當前屏幕顯示字符所對應的ASCII碼和屬碼和屬性。性。(3) B8000HBBF3FH約約16KB是彩色顯示

27、器的顯示緩沖是彩色顯示器的顯示緩沖區(qū),存放彩色顯示器當前屏幕像點所對應的代碼。區(qū),存放彩色顯示器當前屏幕像點所對應的代碼。(4) FFFF0HFFFFFH共共16個單元,一般用來存放一條個單元,一般用來存放一條無條件轉移指令,轉到系統(tǒng)的初始化程序。這是因為無條件轉移指令,轉到系統(tǒng)的初始化程序。這是因為系統(tǒng)加電或者復位時,會自動轉到系統(tǒng)加電或者復位時,會自動轉到FFFF0H執(zhí)行。執(zhí)行。3.1.3 80868088 微處理器的引腳功能微處理器的引腳功能8086/8088微處理器微處理器(CPU)可以在兩種模式下工作,可以在兩種模式下工作,即最大模式和最小模式。即最大模式和最小模式。所謂最小模式,就

28、是系統(tǒng)中只有所謂最小模式,就是系統(tǒng)中只有8086或者或者8088一個一個微處理器。在這種系統(tǒng)中,所有的總線控制信號微處理器。在這種系統(tǒng)中,所有的總線控制信號都直接由都直接由8086或或8088產(chǎn)生,因此,系統(tǒng)中的總線產(chǎn)生,因此,系統(tǒng)中的總線控制邏輯電路被減到最小。最大模式是相對最小控制邏輯電路被減到最小。最大模式是相對最小模式而言的。最大模式用在中等規(guī)模的或者大型模式而言的。最大模式用在中等規(guī)模的或者大型的的8086/8088系統(tǒng)中。在最大模式系統(tǒng)中,總是包系統(tǒng)中。在最大模式系統(tǒng)中,總是包含兩個或兩個以上微處理器,其中一個主處理器含兩個或兩個以上微處理器,其中一個主處理器就是就是8086或者或

29、者8088,其他的處理器為協(xié)處理器。,其他的處理器為協(xié)處理器。例如用于數(shù)值運算的處理器例如用于數(shù)值運算的處理器8087,用于輸入,用于輸入/輸出輸出大量數(shù)據(jù)的處理器大量數(shù)據(jù)的處理器8089。圖圖3.5為為8086 CPU和和8088 CPU的引腳圖,圖中帶有括的引腳圖,圖中帶有括號的引腳為最大模式時的引腳名稱。號的引腳為最大模式時的引腳名稱。圖圖3.58088是一種準是一種準16位微處理器,它的內(nèi)部數(shù)據(jù)總線是位微處理器,它的內(nèi)部數(shù)據(jù)總線是16位,外部數(shù)據(jù)總線是位,外部數(shù)據(jù)總線是8位,在軟件上位,在軟件上8088與與8086直接兼容,在硬件上除指令隊列、第直接兼容,在硬件上除指令隊列、第15引腳

30、引腳第第18引腳、第引腳、第34引腳、第引腳、第28引腳外,其他基本相同。引腳外,其他基本相同。我們主要了解最小模式下的我們主要了解最小模式下的8086,最大模式的引,最大模式的引腳功能略作介紹。腳功能略作介紹。在下面講解引腳的動作過程中,用到一個總線周期在下面講解引腳的動作過程中,用到一個總線周期的概念,這部分內(nèi)容將在下一節(jié)中專門講解。本的概念,這部分內(nèi)容將在下一節(jié)中專門講解。本節(jié)我們需要了解的是節(jié)我們需要了解的是CPU在進行工作時,無論是在進行工作時,無論是取指令還是讀寫數(shù)據(jù),都是在一個時鐘的統(tǒng)一控取指令還是讀寫數(shù)據(jù),都是在一個時鐘的統(tǒng)一控制下進行的。一個總線周期由制下進行的。一個總線周期

31、由4個時鐘周期組成,個時鐘周期組成,習慣上將習慣上將4個時鐘周期稱為個時鐘周期稱為4個狀態(tài),分別為個狀態(tài),分別為T1、T2、T3和和T4狀態(tài),如圖狀態(tài),如圖3.6所示。所示。圖圖3.6TW狀態(tài)是用來等待存儲器和狀態(tài)是用來等待存儲器和I/O設備對設備對CPU的響應,的響應,此時總線上的信息狀態(tài)和此時總線上的信息狀態(tài)和T3時的狀態(tài)一樣。時的狀態(tài)一樣。1. 地址地址/數(shù)據(jù)總線數(shù)據(jù)總線AD15AD0為地址為地址/數(shù)據(jù)復用引腳,雙向,三態(tài)。該數(shù)據(jù)復用引腳,雙向,三態(tài)。該引腳既可以輸出訪問存儲器或訪問引腳既可以輸出訪問存儲器或訪問I/O的地址信息的地址信息A15A0,又可以作為與存儲器和又可以作為與存儲器

32、和I/O設備交換數(shù)設備交換數(shù)據(jù)信息的據(jù)信息的D0D15。他們是分時工作的。由于他們是分時工作的。由于8088 CPU對外數(shù)據(jù)總線是對外數(shù)據(jù)總線是8位,所以位,所以AD0AD7為復用為復用線,線,AD15AD8不作復用,僅作為地址線輸出地不作復用,僅作為地址線輸出地址。址。2. 地址地址/狀態(tài)總線狀態(tài)總線A19/S6A16/S3A19/S6A16/S3為地址為地址/狀態(tài)總線復用引腳,輸出,狀態(tài)總線復用引腳,輸出,三態(tài)。三態(tài)。該引腳輸出訪問存儲器的該引腳輸出訪問存儲器的20位地址的高位地址的高4位地址,也位地址,也可以輸出可以輸出CPU的一些工作狀態(tài),它也是分時工作的一些工作狀態(tài),它也是分時工作的

33、。在總線周期的的。在總線周期的T1狀態(tài),用來輸出地址的最高狀態(tài),用來輸出地址的最高位,在總線周期的位,在總線周期的T2、T3和和T4狀態(tài)時,用來輸出狀態(tài)時,用來輸出狀態(tài)信息。狀態(tài)信息。S6: 指示指示8086/8088當前是否與總線相連,當前是否與總線相連,S6=0,表表示示8086/8088當前與總線相連。當前與總線相連。S5: 表明中斷允許標志當前的設置。表明中斷允許標志當前的設置。S5=0,表示表示CPU中斷是關閉的,禁止一切可屏蔽中斷的中斷中斷是關閉的,禁止一切可屏蔽中斷的中斷請求;請求;S5=1表示表示CPU中斷是開放的,允許一切可中斷是開放的,允許一切可屏蔽中斷的中斷申請。屏蔽中斷

34、的中斷申請。S4和和S3: 組合起來指出當前使用的段寄存器的情況,組合起來指出當前使用的段寄存器的情況,如表如表3.1所示。所示。3. 控制總線控制總線(1) BHE/S7: 高高8位數(shù)據(jù)總線允許位數(shù)據(jù)總線允許/狀態(tài)復用引腳。在狀態(tài)復用引腳。在總線周期的總線周期的T1狀態(tài)此引腳輸出狀態(tài)此引腳輸出BHE信號,表示高信號,表示高8位數(shù)據(jù)線位數(shù)據(jù)線D15D8上的數(shù)據(jù)有效,上的數(shù)據(jù)有效,T2、T3、TW和和T4狀態(tài),此引腳輸出狀態(tài)信號狀態(tài),此引腳輸出狀態(tài)信號S7。BHE信號和信號和A0信號合起來,說明當前數(shù)據(jù)總線的使用情況,如信號合起來,說明當前數(shù)據(jù)總線的使用情況,如表表3.2所示。所示。S7用來輸出

35、狀態(tài)信息,在當前用來輸出狀態(tài)信息,在當前8086芯片的設計中未芯片的設計中未被賦予定義,暫作備用。在被賦予定義,暫作備用。在8088中第中第34引腳不是引腳不是BHE/S7,而是被賦于另外的信號。在最大模式時,而是被賦于另外的信號。在最大模式時,此引腳恒為高電平;在最小模式時,則為此引腳恒為高電平;在最小模式時,則為SS0,這這和和DT/、M/IO一起決定了一起決定了8088芯片當前總線周期芯片當前總線周期的讀的讀/寫動作。寫動作。(2) RD: 讀信號,三態(tài)輸出,低電平有效。讀信號,三態(tài)輸出,低電平有效。RD=0時,時,表示當前表示當前CPU正在對存儲器或正在對存儲器或I/O端口進行讀操作。

36、端口進行讀操作。(3) WR: 寫信號,三態(tài)輸出,低電平有效。寫信號,三態(tài)輸出,低電平有效。WR=0時,時,表示當前表示當前CPU正在對存儲器或正在對存儲器或I/O端口進行寫操作。端口進行寫操作。(4) M/IO: 存儲器或存儲器或I/O端口訪問信號,三態(tài)輸出。端口訪問信號,三態(tài)輸出。M/IO=1時,表示時,表示CPU當前正在訪問存儲器;當前正在訪問存儲器;M/IO=0時,表示時,表示CPU當前正在訪問當前正在訪問I/O端口。端口。(5) READY: 準備就緒信號,輸入,高電平有效。準備就緒信號,輸入,高電平有效。READY=1時,表示時,表示CPU訪問的存儲器或訪問的存儲器或I/O端口已準

37、端口已準備好傳送數(shù)據(jù)。若備好傳送數(shù)據(jù)。若CPU在總線周期在總線周期T3狀態(tài)檢測到狀態(tài)檢測到READY信號為低電平,表示存儲器或信號為低電平,表示存儲器或I/O設備尚未準設備尚未準備就緒,備就緒,CPU自動插入一個或多個等待狀態(tài)自動插入一個或多個等待狀態(tài)TW,直直到到READY信號變?yōu)楦唠娖綖橹?。信號變?yōu)楦唠娖綖橹埂?6) INTR: 可屏蔽請求信號,輸入,電平觸發(fā),高電平可屏蔽請求信號,輸入,電平觸發(fā),高電平有效。當有效。當INTR=1時,表示外設向時,表示外設向CPU發(fā)出中斷請求,發(fā)出中斷請求,CPU在當前指令周期的最后一個在當前指令周期的最后一個T狀態(tài)去采樣該信號,狀態(tài)去采樣該信號,若此時

38、若此時IF=1,則則CPU響應中斷,停止執(zhí)行原指令序列,響應中斷,停止執(zhí)行原指令序列,轉去執(zhí)行中斷服務程序。轉去執(zhí)行中斷服務程序。(7) INTA: 中斷響應信號,輸出,低電平有效。表示中斷響應信號,輸出,低電平有效。表示CPU響響應了外設發(fā)來的應了外設發(fā)來的INTR信號。信號。(8) NMI: 不可屏蔽中斷請求信號,輸入,上升沿觸發(fā)。該請不可屏蔽中斷請求信號,輸入,上升沿觸發(fā)。該請求信號不受求信號不受IF狀態(tài)的影響,也不能用軟件屏蔽,一旦該信狀態(tài)的影響,也不能用軟件屏蔽,一旦該信號有效,則執(zhí)行完當前指令后響應中斷。號有效,則執(zhí)行完當前指令后響應中斷。(9) TEST: 測試信號,輸入,低電平

39、有效。當測試信號,輸入,低電平有效。當CPU執(zhí)行執(zhí)行WAIT指令時,每隔指令時,每隔5個時鐘周期對個時鐘周期對TEST進行一次測試,進行一次測試,若測到若測到TEST無效,無效,CPU繼續(xù)處于等待狀態(tài),直到檢測到繼續(xù)處于等待狀態(tài),直到檢測到TEST為低電平。為低電平。(10) RESET: 復位信號,輸入,高電平有效。復位信號,輸入,高電平有效。RESET信號至信號至少要保持少要保持4個時鐘周期。個時鐘周期。CPU接到接到RESET信號后,停止進信號后,停止進行操作,并將標志寄存器、行操作,并將標志寄存器、IP、DS、SS、ES及指令隊列清及指令隊列清零,將零,將CS設置為設置為FFFFH。當

40、復位信號為低電平時,當復位信號為低電平時,CPU從從FFFF0H開始執(zhí)行程序。開始執(zhí)行程序。(11) ALE: 地址鎖存允許信號,輸出,高電平有效。用地址鎖存允許信號,輸出,高電平有效。用來做地址鎖存器來做地址鎖存器8282的片選信號,使由的片選信號,使由AD15AD0分分時發(fā)出的地址信息和數(shù)據(jù)信息分開。時發(fā)出的地址信息和數(shù)據(jù)信息分開。(12) DT/: 數(shù)據(jù)發(fā)送數(shù)據(jù)發(fā)送/接收控制信號,三態(tài)輸出。在最小接收控制信號,三態(tài)輸出。在最小模式系統(tǒng)中使用模式系統(tǒng)中使用8286作為數(shù)據(jù)總線的收發(fā)器,作為數(shù)據(jù)總線的收發(fā)器,DT/信號信號用來控制用來控制8286芯片的數(shù)據(jù)傳送方向。當芯片的數(shù)據(jù)傳送方向。當D

41、T/R=1時,則時,則進行數(shù)據(jù)發(fā)送,即進行寫操作;當進行數(shù)據(jù)發(fā)送,即進行寫操作;當DT/R=0時,則進行時,則進行數(shù)據(jù)接收,即進行讀操作。數(shù)據(jù)接收,即進行讀操作。(13) DEN: 數(shù)據(jù)允許信號,三態(tài)輸出,低電平有效。在數(shù)據(jù)允許信號,三態(tài)輸出,低電平有效。在最小模式系統(tǒng)中,用來作數(shù)據(jù)收發(fā)器最小模式系統(tǒng)中,用來作數(shù)據(jù)收發(fā)器8286的選通信號。的選通信號。(14) HOLD: 總線請求信號,輸入,高電平有效。當系總線請求信號,輸入,高電平有效。當系統(tǒng)中統(tǒng)中CPU之外的另一個主模塊要求占用總線時,通過之外的另一個主模塊要求占用總線時,通過它向它向CPU發(fā)一高電平的請求信號。發(fā)一高電平的請求信號。(1

42、5) HLDA: 總線請求響應信號,輸出,高電平有效。當總線請求響應信號,輸出,高電平有效。當HLDA有效時,表示有效時,表示CPU對其他主部件的總線請求作出響對其他主部件的總線請求作出響應,與此同時,所有與三總線相接的應,與此同時,所有與三總線相接的CPU的引腳呈現(xiàn)高阻的引腳呈現(xiàn)高阻抗,從而讓出總線???,從而讓出總線。(16) MN/MX: 工作模式選擇信號,輸入。工作模式選擇信號,輸入。MN/MX=1,表示表示CPU工作在最小模式系統(tǒng);工作在最小模式系統(tǒng);MN/MX=0, 表示表示CPU工作在工作在最大模式系統(tǒng)。最大模式系統(tǒng)。(17) CLK: 主時鐘信號,輸入。主時鐘信號,輸入。8086

43、和和8088要求時鐘信號的要求時鐘信號的占空比為占空比為33%,即,即1/3周期為高電平,周期為高電平,2/3周期為低電平。周期為低電平。8086和和8088的時鐘頻率要求為的時鐘頻率要求為5MHz,8086|1的時鐘頻率為的時鐘頻率為10MHz,8086|2的時鐘頻率為的時鐘頻率為8MHz。不同型號的芯片使用不同型號的芯片使用的時鐘頻率不同。的時鐘頻率不同。4. 電源線和地線電源線和地線8086和和8088均用單一的均用單一的+5V電源。電源。1、20引腳為地線,應接地。引腳為地線,應接地。5. 最大模式下的有關引腳最大模式下的有關引腳(1) QS1、QS0: 指令隊列狀態(tài)信號,輸出。這兩個

44、信號指令隊列狀態(tài)信號,輸出。這兩個信號組合起來提供了總線周期的前一個狀態(tài)中指令隊列的組合起來提供了總線周期的前一個狀態(tài)中指令隊列的狀態(tài),以便于外部對狀態(tài),以便于外部對8086/8088內(nèi)部指令隊列的動作跟內(nèi)部指令隊列的動作跟蹤。蹤。QS1、QS2的代碼組合和對應的含義見表的代碼組合和對應的含義見表3.3所示。所示。(2) S2、S1、S0: 總線周期狀態(tài)信號,三態(tài)輸出。在最總線周期狀態(tài)信號,三態(tài)輸出。在最大模式系統(tǒng)中,它用來給總線控制器大模式系統(tǒng)中,它用來給總線控制器8288提供服務。提供服務。8288利用這些狀態(tài)信號產(chǎn)生對存儲器和利用這些狀態(tài)信號產(chǎn)生對存儲器和I/O設備的讀寫設備的讀寫信號。

45、這信號。這3個狀態(tài)信號的編碼和含義如表個狀態(tài)信號的編碼和含義如表3.4所示。所示。(3) RQ/GT1、EQ/GT2: 總線請求信號總線請求信號(輸入輸入)/總線請求總線請求允許信號允許信號(輸出輸出),雙向,低電平有效。,雙向,低電平有效。這兩個信號端可供這兩個信號端可供CPU以外的以外的2個處理器用來發(fā)出使用總個處理器用來發(fā)出使用總線的請求信號和接收線的請求信號和接收CPU對總線請求信號的回答信號。對總線請求信號的回答信號。這兩個應答信號都是雙向的。這兩個應答信號都是雙向的。RQ/GT0的優(yōu)先級比的優(yōu)先級比RQ/GT1的高。的高。(4) LOCK: 總線封縮信號,三態(tài)輸出,低電平有效??偩€

46、封縮信號,三態(tài)輸出,低電平有效。LOCK有效時,表示有效時,表示CPU不允許其他總線主控部件不允許其他總線主控部件占用總線。占用總線。LOCK信號是由指令信號是由指令“LOCK”使其有使其有效,并維持到下一條指令執(zhí)行完畢為止。效,并維持到下一條指令執(zhí)行完畢為止。此外,在此外,在8086/8088的兩個中斷響應脈沖之間,的兩個中斷響應脈沖之間,LOCK信號也自動變?yōu)橛行щ娖剑苑榔渌偩€主信號也自動變?yōu)橛行щ娖?,以防其他總線主部件在中斷響應過程中占用總線而使一個完整的部件在中斷響應過程中占用總線而使一個完整的中斷響應過程被間斷。還須指出,在中斷響應過程被間斷。還須指出,在DMA期間,期間,LOC

47、K端被浮空而處于高阻狀態(tài)。端被浮空而處于高阻狀態(tài)。3.2 8086總線的操作時序總線的操作時序為了使取指令和傳送數(shù)據(jù)能協(xié)調(diào)工作,為了使取指令和傳送數(shù)據(jù)能協(xié)調(diào)工作,8086 CPU的的操作是在時鐘操作是在時鐘CLK統(tǒng)一控制下進行的。統(tǒng)一控制下進行的。8086時時鐘頻率為鐘頻率為5MHz,故一個時鐘周期為故一個時鐘周期為200ns。執(zhí)行一條指令所需的時間,稱為一個指令周期。而執(zhí)行一條指令所需的時間,稱為一個指令周期。而一個指令周期是由若干個總線周期一個指令周期是由若干個總線周期(或稱機器周或稱機器周期期)所組成的。一個總線周期是所組成的。一個總線周期是CPU通過總線與通過總線與存儲器或外部設備進行

48、一次數(shù)據(jù)傳輸所需的時存儲器或外部設備進行一次數(shù)據(jù)傳輸所需的時間。間。一個總線周期又是由若干個時鐘周期組成。一個最一個總線周期又是由若干個時鐘周期組成。一個最基本的總線周期是由基本的總線周期是由4個時鐘周期組成。常將個時鐘周期組成。常將4個時鐘周期分別稱為個時鐘周期分別稱為4個狀態(tài),即個狀態(tài),即T1、T2、T3和和T4。8086的主要操作是:的主要操作是: (1) 系統(tǒng)的復位和啟動操作;系統(tǒng)的復位和啟動操作;(2) 暫停操作;暫停操作;(3) 總線操作;總線操作;(4) 中斷操作。中斷操作。3.2.1 系統(tǒng)的復位和啟動系統(tǒng)的復位和啟動1. 復位復位8086/8088 CPU的的RESET引腳可以

49、用來使引腳可以用來使CPU復位和啟動。要求復位和啟動。要求RESET引腳上的高電平信號維引腳上的高電平信號維持持4個時鐘周期才能保證個時鐘周期才能保證CPU可靠地復位。初次加可靠地復位。初次加電也能使電也能使CPU復位,這時要求復位,這時要求RESET的高電平信的高電平信號維持時間不小于號維持時間不小于800ns。8086 CPU被復位后,被復位后,PSW、DS、ES、SS和其他寄和其他寄存器被清零,指令隊列也被清零,段寄存器存器被清零,指令隊列也被清零,段寄存器CS和和指令指針指令指針I(yè)P分別被初始化為分別被初始化為FFFFH和和0000H,因此因此8086 CPU復位后重新啟動,執(zhí)行的第一

50、條指令所復位后重新啟動,執(zhí)行的第一條指令所在存儲單元的物理地址為在存儲單元的物理地址為FFFFH16+0000HFFFF0H。一般情況下,在從一般情況下,在從FFFF0H開始的單元中,存放一條開始的單元中,存放一條無條件轉移指令,以轉移到系統(tǒng)程序?qū)嶋H開始處。無條件轉移指令,以轉移到系統(tǒng)程序?qū)嶋H開始處。值得注意的是在復位后由于標志寄存器的各位均被值得注意的是在復位后由于標志寄存器的各位均被清零,使清零,使IF=0,處于關中斷狀態(tài),處于關中斷狀態(tài),8086/8088 CPU不能響應可屏蔽的中斷請求。因而在系統(tǒng)程序的不能響應可屏蔽的中斷請求。因而在系統(tǒng)程序的初始化時,用指令初始化時,用指令STI使標

51、志寄存器中的使標志寄存器中的IF=1,以以使使CPU能夠響應可屏蔽中斷請求。能夠響應可屏蔽中斷請求。復位操作時序如圖復位操作時序如圖3.7所示:所示: 圖圖3.7因為因為CPU內(nèi)部是用時鐘脈沖來同步外部的復位信號內(nèi)部是用時鐘脈沖來同步外部的復位信號的,所以的,所以CPU內(nèi)部的內(nèi)部的RESET信號是在外部信號是在外部RESET信號有效后的時鐘上升沿有效的。信號有效后的時鐘上升沿有效的。RESET信號變信號變成高電平以后,再經(jīng)過成高電平以后,再經(jīng)過1個時鐘周期,所有的三態(tài)個時鐘周期,所有的三態(tài)輸出線被置成高阻狀態(tài),并一直維持高阻狀態(tài)直輸出線被置成高阻狀態(tài),并一直維持高阻狀態(tài)直到到RESET信號回到

52、低電平。但在進入高阻狀態(tài)的信號回到低電平。但在進入高阻狀態(tài)的前半個時鐘周期,即在前一個時鐘周期的低電平前半個時鐘周期,即在前一個時鐘周期的低電平期間,這些三態(tài)線被置成不作用狀態(tài),等到時鐘期間,這些三態(tài)線被置成不作用狀態(tài),等到時鐘信號又成為高電平時,三態(tài)輸出線才進入高阻狀信號又成為高電平時,三態(tài)輸出線才進入高阻狀態(tài)。復位時,態(tài)。復位時,8086 CPU的總線信號如表的總線信號如表3.5所示。所示。2. 重新啟動重新啟動復位信號復位信號RESET由高電平跳變到低電平的過程中,由高電平跳變到低電平的過程中,觸發(fā)了觸發(fā)了CPU內(nèi)部的一個復位邏輯電路,經(jīng)過內(nèi)部的一個復位邏輯電路,經(jīng)過7個時個時鐘周期后,

53、鐘周期后,CPU就被啟動恢復正常工作。從就被啟動恢復正常工作。從FFFF0H地址所指的單元開始執(zhí)行程序。地址所指的單元開始執(zhí)行程序。3.2.2 最大與最小模式下的總線操作最大與最小模式下的總線操作8086/8088 CPU為了要與存儲器及外設端口交換數(shù)據(jù),為了要與存儲器及外設端口交換數(shù)據(jù),需要執(zhí)行一個總線周期,這就是總線操作。按照需要執(zhí)行一個總線周期,這就是總線操作。按照數(shù)據(jù)傳輸方向來分,總線操作可以分為總線讀操數(shù)據(jù)傳輸方向來分,總線操作可以分為總線讀操作和總線寫操作。總線讀操作是指作和總線寫操作??偩€讀操作是指CPU從存儲器從存儲器或外設端口讀取數(shù)據(jù),總線寫操作是指或外設端口讀取數(shù)據(jù),總線寫

54、操作是指CPU將數(shù)將數(shù)據(jù)寫入存儲器或外設端口。據(jù)寫入存儲器或外設端口。1. 8086 CPU最小模式下的總線讀周期最小模式下的總線讀周期圖圖3.8表示了表示了CPU從存儲器或從存儲器或I/O端口讀取數(shù)據(jù)的時序。端口讀取數(shù)據(jù)的時序。最基本的讀操作包含最基本的讀操作包含4個狀態(tài),即個狀態(tài),即T1、T2、T3和和T4。當存儲器或當存儲器或I/O設備速度慢于設備速度慢于CPU速度時,就速度時,就在在T3和和T4狀態(tài)之間插入狀態(tài)之間插入1個或幾個等待狀態(tài)個或幾個等待狀態(tài)TW。下面分述幾個狀態(tài)下,地址、數(shù)據(jù)、控制信號的產(chǎn)下面分述幾個狀態(tài)下,地址、數(shù)據(jù)、控制信號的產(chǎn)生與時刻的關系。生與時刻的關系。圖圖3.8

55、(1) T1狀態(tài)狀態(tài)當當CPU準備開始一個總線讀周期時,用準備開始一個總線讀周期時,用M/IO信號指信號指出當前執(zhí)行的讀操作是從存儲器讀,還是從出當前執(zhí)行的讀操作是從存儲器讀,還是從I/O端端口讀。如果從存儲器讀,則口讀。如果從存儲器讀,則M/IO為高電平,如果為高電平,如果是從是從I/O端口讀,則端口讀,則M/IO為低電平。為低電平。M/IO信號的信號的有效電平一直保持到整個總線周期的結束。在有效電平一直保持到整個總線周期的結束。在T1狀態(tài),狀態(tài),CPU經(jīng)地址經(jīng)地址/數(shù)據(jù)復用線數(shù)據(jù)復用線AD15AD0,地址地址/狀態(tài)復用線狀態(tài)復用線A19/S7A16/S3發(fā)出發(fā)出20位地址信息,位地址信息,

56、發(fā)出地址信息的同時發(fā)出地址信息的同時BHE和和ALE控制信號有效,控制信號有效,BHE信號用來表示高位數(shù)據(jù)線上的信息可以使用,信號用來表示高位數(shù)據(jù)線上的信息可以使用,用該信號作為奇地址存儲體的選擇信號,配合地用該信號作為奇地址存儲體的選擇信號,配合地址信號來實現(xiàn)對存儲單元的尋址。址信號來實現(xiàn)對存儲單元的尋址。ALE信號作為信號作為地址鎖存信號,啟動鎖存器地址鎖存信號,啟動鎖存器8212,在,在ALE信號下信號下降沿將降沿將20位地址和位地址和BHE信號鎖存。從而把地址信信號鎖存。從而把地址信息和狀態(tài)信息分開。息和狀態(tài)信息分開。(2) T2狀態(tài)狀態(tài)在在T2狀態(tài)時,狀態(tài)時,A19/S6A16/S3

57、上的地址信號消失,上的地址信號消失,而出現(xiàn)而出現(xiàn)S6S3狀態(tài)信號,這些狀態(tài)信號保持到讀狀態(tài)信號,這些狀態(tài)信號保持到讀周期結束,狀態(tài)信號用來表明當前正在使用哪一周期結束,狀態(tài)信號用來表明當前正在使用哪一個段寄存器,指示可屏蔽中斷允許標志個段寄存器,指示可屏蔽中斷允許標志IF的狀態(tài),的狀態(tài),以及表明以及表明8086 CPU當前是連在總線上。當前是連在總線上。AD15AD0變成高阻狀態(tài),為讀入數(shù)據(jù)作準備。變成高阻狀態(tài),為讀入數(shù)據(jù)作準備。RD有效信號為由高電平變成低電平,送至存儲器或有效信號為由高電平變成低電平,送至存儲器或I/O端口,開始從被選中的存儲單元或端口,開始從被選中的存儲單元或I/O端口讀

58、取端口讀取數(shù)據(jù)。數(shù)據(jù)。DEN也變成低電平有效信號,啟動收發(fā)器也變成低電平有效信號,啟動收發(fā)器8286,與,與在在T1狀態(tài)時已有效的狀態(tài)時已有效的DT/信號一樣,做好了接收來信號一樣,做好了接收來自存儲器或自存儲器或I/O端口的數(shù)據(jù)。端口的數(shù)據(jù)。(3) T3狀態(tài)狀態(tài)如果存儲器或如果存儲器或I/O端口已做好了數(shù)據(jù)準備而不需要等待狀端口已做好了數(shù)據(jù)準備而不需要等待狀態(tài)時,則在態(tài)時,則在T3狀態(tài)期間將數(shù)據(jù)放到數(shù)據(jù)總線上,在狀態(tài)期間將數(shù)據(jù)放到數(shù)據(jù)總線上,在T3結束時,結束時,CPU從從AD15AD0上讀取數(shù)據(jù)。上讀取數(shù)據(jù)。(4) TW狀態(tài)狀態(tài)在總線讀周期,若存儲器或在總線讀周期,若存儲器或I/O設備來不

59、及把數(shù)據(jù)放到數(shù)設備來不及把數(shù)據(jù)放到數(shù)據(jù)總線上,則發(fā)出一個低電平信號到據(jù)總線上,則發(fā)出一個低電平信號到CPU的的READY端,端,使使CPU在在T3和和T4之間插入一個或幾個之間插入一個或幾個TW狀態(tài),來等狀態(tài),來等待存儲器或待存儲器或I/O端口的數(shù)據(jù)。端口的數(shù)據(jù)。8086 CPU這時的工作過這時的工作過程是:程是: 在在T3狀態(tài)開始測試狀態(tài)開始測試READY引腳信號,若發(fā)現(xiàn)引腳信號,若發(fā)現(xiàn)READY信號有效,則表示存儲器或信號有效,則表示存儲器或I/O端口能按時將端口能按時將數(shù)據(jù)送上數(shù)據(jù)總線,數(shù)據(jù)送上數(shù)據(jù)總線,T3狀態(tài)之后即進入狀態(tài)之后即進入T4狀態(tài);若測狀態(tài);若測試到試到READY為低電平,

60、則在為低電平,則在T3狀態(tài)結束后,不進入狀態(tài)結束后,不進入T4狀態(tài),而插入一個或幾個狀態(tài),而插入一個或幾個TW狀態(tài),在每個狀態(tài),在每個TW狀態(tài)狀態(tài)開始,開始,CPU都測試都測試READY線,只有發(fā)現(xiàn)它為高電平后,線,只有發(fā)現(xiàn)它為高電平后,才在該才在該TW結束后進入結束后進入T4狀態(tài)。狀態(tài)。在最后一個在最后一個TW狀態(tài),數(shù)據(jù)已經(jīng)出現(xiàn)在數(shù)據(jù)總線上。狀態(tài),數(shù)據(jù)已經(jīng)出現(xiàn)在數(shù)據(jù)總線上。所以,在最后一個所以,在最后一個TW狀態(tài)中,總線的動作和基本狀態(tài)中,總線的動作和基本總線周期中總線周期中T3狀態(tài)所完成的動作完全一樣。而在狀態(tài)所完成的動作完全一樣。而在其他的其他的TW狀態(tài),所有控制信號的電平和狀態(tài),所有控

溫馨提示

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

評論

0/150

提交評論