版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第二章8086系統(tǒng)結構2.18086CPU的結構2.28086的引腳和功能2.38086存儲器組織2.48086的工作模式和總線操作8086CPU的基本性能指標
(1)16位微處理器;數據寬度(字長):16位。(2)采用高速運算性能的HMOS工藝制造,芯片上集成了2.9萬只晶體;(3)使用單一的+5V電源,40條引腳雙列直插式封裝(DIP);(4)時鐘頻率為5MHz~10MHz,基本指令執(zhí)行時間為0.3ms~0.6ms。(5)16根數據線和20根地址線,尋址能力(或尋址范圍)為:220=1MB。(6)8086可以和浮點運算器、輸入/輸出處理器或其他處理器組成多處理器系統(tǒng),從而極大地提高了系統(tǒng)的數據吞吐能力和數據處理能力。2.1.18086CPU的內部結構及工作過程
8086是Intel系列的16位微處理器,采用HMOS工藝。同時,Intel還推出了準16位微處理器8088(內部數據總線16位,外部數據總線8位)。主要用于兼容當時的外圍接口芯片。
8086CPU內部結構框圖如下頁圖所示。
8086CPU指令執(zhí)行部件EU總線接口部件BIU2.18086CPU的內部結構內部暫存器
IPESSS
DS
CS輸入/輸出控制電路外部總線執(zhí)行部件控制電路123456∑ALU標志寄存器
AHAL
BHBLCHCL
DHDL
SP
BP
SIDI通用AX寄存
BX器CX
DX地址加法器指令隊列緩沖器執(zhí)行部件(EU)總線接口部件(BIU)16位20位16位8位功能:
總線接口部件BIU是CPU與外部(存儲器和I/O口)的接口,它提供了16位雙向數據總線和20位地址總線,完成所有的外部總線操作。具有地址形成、取指令、指令排隊、讀/寫操作數、總線控制等功能。組成:4個16位段地址寄存器(CS、DS、ES、SS)
16位指令指針寄存器IP20位物理地址加法器
6字節(jié)指令隊列總線控制器1.總線接口部件BIU(BusInterfaceUnit)
BIU的特點:
8086的指令隊列為6個字節(jié),在EU執(zhí)行指令的同時,BIU可從內存中取出后續(xù)的指令代碼,放在指令隊列中,可以提高CPU的工作效率。
地址加法器用來產生20位物理地址。8086可用20位地址尋址1M字節(jié)的內存空間,而CPU內部的寄存器都是16位,因此需要由一個附加的機構來計算出20位的物理地址,這個機構就是20位的地址加法器。
例如:CS=FE00H,IP=0400H,則表示要取指令代碼的物理地址為FE400H。2.指令執(zhí)行部件EU(ExecutionUnit)功能:指令執(zhí)行部件EU完成指令譯碼和指令執(zhí)行的工作。組成:算術邏輯單元ALU
標志寄存器flags
4個16位通用寄存器(AX、BX、CX、DX)
4個16位專用寄存器(BP、SP、SI、DI)
EU控制器
3.BIU與EU的動作協(xié)調原則
總線接口部件(BIU)和執(zhí)行部件(EU)按流水線技術原則協(xié)調工作,共同完成所要求的信息處理任務:
(1)每當8086的指令隊列中有2個或2個以上空字節(jié)時,BIU就會自動把指令從存儲器取到指令隊列中。其取指的順序是按指令在程序中出現的前后順序(根據CS:IP指向的位置)。
3.BIU與EU的動作協(xié)調原則(2)每當EU準備執(zhí)行一條指令時,它會從BIU部件的指令隊列前部取出指令的代碼,然后用幾個時鐘周期去執(zhí)行指令。在執(zhí)行指令的過程中,如果必須訪問存儲器或者I/O端口,那么EU就會將操作數的偏移地址送給BIU,進入總線周期,完成訪問內存或者I/O端口的操作;如果此時BIU正好處于空閑狀態(tài),會立即響應EU的總線請求。如BIU正將某個指令字節(jié)取到指令隊列中,則BIU將首先完成這個取指令的總線周期,然后再去響應EU發(fā)出的訪問總線的請求。BIU與EU兩者的工作是不同步的,8086可以在執(zhí)行指令的同時,進行取指令代碼的操作,即BIU與EU是一種并行工作方式,改變了以往計算機取指令→譯碼→執(zhí)行指令的串行工作方式,提高了總線的利用率,大大提高了工作效率。
(3)當指令隊列已滿,且EU又沒有總線訪問請求時,BIU便進入空閑狀態(tài)。
(4)在執(zhí)行轉移指令、調用指令和返回指令時,由于待執(zhí)行指令的順序(CS:IP)發(fā)生了變化,則指令隊列中已經裝入的字節(jié)被自動消除,BIU會接著往指令隊列裝入轉向的另一程序段中的指令代碼。等待取指1執(zhí)行1等待取指2執(zhí)行2等待取指3執(zhí)行3CPU總線忙閑忙閑忙閑傳統(tǒng)微處理器的指令執(zhí)行過程取指1取指2取指3取指4取指5取指6EU總線執(zhí)行1執(zhí)行2執(zhí)行3執(zhí)行4執(zhí)行5執(zhí)行6忙忙忙忙忙忙BIU8086CPU的指令執(zhí)行過程
總結:BIU狀態(tài):(1)將指令按序取入指令隊列(指令隊列中只要有兩個字節(jié)以上的空,就往指令隊列中取指令);(2)響應EU的總線周期,完成訪問存儲器、I/O口;(3)空閑狀態(tài)(指令隊列不空,也無EU的總線的請求)。EU狀態(tài):(1)從BIU指令隊列前部取出指令,經指令譯碼后,執(zhí)行指令;(2)需要訪問存儲器、I/O口,向BIU提出總線周期申請;(3)BIU指令隊列空時,EU處于等待狀態(tài)。CPU的工作過程已知:DS=3000H,CS=1000H,當前的IP=100H,執(zhí)行下面的指令:
MOVAL,[2000H];假設32000單元中的內容為10ADDAL,02HEU和BIU的工作過程:2.1.28086CPU的寄存器DLDHCLCHBLBHALAH
AXBXCXDX通用寄存器
CSDSSSESIPflags變址寄存器指針寄存器堆棧指針基址指針源變址目的變址指令指針狀態(tài)標志代碼段數據段堆棧段附加段段寄存器控制寄存器
SPBPSIDIAX(Accumulator):累加器,存放算術運送操作數、結果;BX(Base):基址寄存器;CX(Count):計數器寄存器;DX(Data):數據寄存器。1.通用寄存器(見教材P26表2-1)
8086有4個16位的通用寄存器(AX、BX、CX、DX),可以存放16位的二進制操作數,也可做為8個相互獨立的8位寄存器(AL、AH;BL、BH;CL、CH;DL、DH)來使用。除了作為通用寄存器外,它們還有專門的用途:2.指針和變址寄存器(見教材P26表2-1)
8086有4個16位的指針或變址寄存器(SI、DI、SP、BP)。(1)指針寄存器系統(tǒng)中有兩個16位的指針寄存器SP和BP。
BP(BasePoint):基址指針寄存器。用于存放偏移量,通常和SS段寄存器配合使用,在間接尋址中用于定位堆棧段中的內存單元。SP(StackPoint)堆棧指針寄存器,用于存放偏移量,只能和SS段寄存器配合使用,且始終指向堆棧的棧頂,在堆棧指令中隱含的使用它來定位棧頂數據。(2)變址寄存器(見教材P26表2-1)
系統(tǒng)中有兩個16位的變址寄存器SI和DI,用于指令的變址尋址方式。
SI(SourceIndex):源變址寄存器。用于存放偏移量或偏移量的一部分,通常和DS、ES這兩個段寄存器配合使用,用于定位數據段或附加段中的內存單元。在字符串操作指令中,用于指明源串偏移量。也可同16位的通用寄存器一樣使用。
DI(DestinationIndex):目的變址寄存器。用于存放偏移量或偏移量的一部分,通常和DS、ES這兩個段寄存器配合使用,用于定位數據段或附加段中的內存單元。在字符串操作指令中,用于指明目的串偏移量。也可同16位的通用寄存器一樣使用。
8086CPU共有4個16位的段寄存器,用來存放每一個邏輯段的段起始地址(段基址)。(1)代碼段寄存器CS(CodeSegment)
(2)數據段寄存器DS(DataSegment)(3)堆棧段寄存器SS
(StackSegment)(4)附加段寄存器ES(ExtraSegment)
3.段寄存器
8086CPU外部有20位地址總線,可以直接尋址1MB空間,但8086CPU內部的寄存器都是16位的,只能直接尋址64KB,因此存儲器的訪問必須采用分段技術。段:內存中一段連續(xù)的空間,在程序中具有特定的用途。段基址:段在內存中的起始地址=段基值×168086CPU系統(tǒng)中共有4個16位段寄存器,用于存放程序所要使用的4個存儲段的段基值,分別對應于內存中的四塊存儲區(qū)域,代碼段、堆棧段、數據段、附加段。功能:段寄存器的內容與有效的地址偏移量一起,可確定內存的物理地址。通常CS劃定并控制程序區(qū),DS和ES控制數據區(qū),SS控制堆棧區(qū)。
代碼段:用于存放程序的機器指令序列;堆棧段:用于存放程序使用堆棧指令所保存的數據,自動保存的斷點等信息;數據段:存放程序直接使用的數據;附加段:其中的內容不確定,可以由程序開發(fā)人員根據實際需要自己決定。
每個程序都可能會使用這樣四個段,其中代碼段是必須的,實用的程序通常至少包含代碼段、堆棧段、數據段。
代碼段寄存器CS(CodeSegment)數據段寄存器DS(DataSegment)堆棧段寄存器SS(StackSegment)附加段寄存器ES(ExtraSegment)CS0000
IP代碼段DS或ES0000SI、DI或BXSS0000SP或BP數據段堆棧段存儲器段寄存器和偏移地址寄存器組合關系4.指令指針及標志寄存器(1)指令指針寄存器IP
IP
用于控制CPU的指令執(zhí)行順序(只存放偏移量),只能和代碼段寄存器CS配合使用,可以確定當前所要取的指令的內存地址,且始終指向代碼段中下一條將要讀取到CPU指令隊列的那條指令。
順序執(zhí)行程序時,CPU每取一個指令字節(jié),IP自動加1,指向下一個要讀取的字節(jié);修改IP中內容的操作是CPU在每讀取一條指令到指令隊列后自動進行的,使它指向要讀取的下一條指令。
跳轉指令可以隱含的修改IP寄存器中的內容。(2)標志寄存器flags
標志寄存器flags用于存放CPU在工作過程中的狀態(tài)。
flags為16位寄存器,其中共有9個標志位,可分成兩類:一類為狀態(tài)標志,一類為控制標志。
狀態(tài)標志:表示前一條指令(如加、減等)執(zhí)行以后,ALU所處的狀態(tài),后續(xù)操作可以根據這些狀態(tài)標志進行判斷,實現轉移;
控制標志:可以通過指令人為設置,用以對某一種特定的功能起控制作用(如中斷屏蔽等),反映了人們對微機系統(tǒng)工作方式的可控制性。
PSW中各標志位的安排如下表所示。
1514131211109876543210
OF
DFIFTF
SFZFAFPF CFD15進借位標志奇偶標志半進借位標志零標志符號標志單步中斷中斷允許方向標志溢出標志1-有進、借位0-無進、借位1-低4位向高4位有進、借位0-低4位向高4位無進、借位1-低8位有偶數個10-低8位有奇數個11-結果為00-結果不為0D0OFDFIFTFSFZFAFPFCF16位寄存器,其中有7位未用。
PSW是按位操作的。可以通過轉移指令來判斷標志位的變化,從而實現程序中的分支結構或者循環(huán)結構。
PSW中各標志位含義如下:①狀態(tài)標志:6個
CF—進位標志位,實現加法(或減法)時,當最高位出現進位(或借位),CF位自動置1,反之置0。
PF—奇偶標志位,當運算結果的低8位中l(wèi)的個數為偶數時,則PF位自動置1,反之為0。AF—半進位標志位,實現加法(或減法)時,當低四位向高四位有進位(或借位),AF位自動置1。通常用于對BCD算術運算結果的調整。例如:11011000+10101110=110000110其中AF=1,CF=1ZF—零標志位,運算結果為0時,ZF位自動置1,否則清0。
SF—符號標志位,當運算結果的最高位為1,SF自動位置1,否則清0。即與運算結果的最高位相同。OF—溢出標志位,OF溢出的判斷方法如下:加法運算:
若兩個加數的最高位為0,而和的最高位為1,則產生溢出;若兩個加數的最高位為1,而和的最高位為0,則產生溢出;兩個加數的最高位不相同時,不可能產生溢出。減法運算:
若被減數的最高位為0,減數的最高位為1,而差的最高位為1,則產生溢出;若被減數的最高位為1,減數的最高位為0,而差的最高位為0,則產生溢出;被減數及減數的最高位相同時,按兩數的大小判斷溢出。如果所進行的運算是帶符號數的運算,則溢出標志恰好能夠反映運算結果是否超出了8位或16位帶符號數所能表達的范圍,即字節(jié)運算大于+127或小于-128時,字運算大于十32767或小于-32768時,該位置1,反之為0。例如:
01010100 00111001
+0100010101101010 1001100110100011
CF=0、AF=1、PF=1、ZF=0、SF=1、OF=1(兩正數相加結果為負)
一般來講,不是每次運算后所有的標志都改變,只是在某些操作之后,才對其中某個標志進行檢查。②控制標志:3個
TF—單步標志位。當TF位置1時,將使8086/8088進入單步工作方式,通常用于程序的調試。
IF—中斷允許標志位,若IF位置1,則處理器可以響應可屏蔽中斷,否則就不能響應可屏蔽中斷。
DF—方向標志位,若DF位置1,則串操作指令的地址修改為自動減量方向,反之,為自動增量方向。2.28086的引腳信號和功能
如下頁圖所示,是8086/8088CPU的外部結構,即引腳信號圖。
8086/8088CPU芯片是40引腳雙列直插式(DIP40)封裝的集成電路芯片,其中32個引腳在兩種工作模式(最小模式和最大模式)下的名稱和功能是相同的,還有8個引腳(24----31)在不同的工作模式下,具有不同的名稱和功能。
最小模式最大模式最小模式最大模式系統(tǒng)的最小模式:只有8086/8088CPU。系統(tǒng)的最大模式:有兩個或兩個以上的CPU,一個為主CPU8086/8088,另一個為協(xié)CPU8087/8089。1.兩種模式下,名稱和功能相同的32個引腳(1)VCC、GND:電源、接地引腳,8088/8086CPU采用單一的+5V電源,但有兩個接地引腳。(2)AD15—AD0(AddressDataBus)(雙向、三態(tài)):低16位地址/數據分時復用信號輸入/輸出引腳(16條)。在傳送地址信號時為單向,傳送數據信號時為雙向。T1狀態(tài)傳地址,T2~T4狀態(tài)傳數據。(3)A19/s6—A16/s3(AddressStatusBus)(輸出、三態(tài)):高4位地址/狀態(tài)分時復用信號輸出引腳(4條)。訪問存儲器時T1狀態(tài)輸出高四位地址,訪問I/O口時四位為0。T2~T4輸出狀態(tài)。
S6:保持“0”用以指示8086/8088CPU當前與總線連通;
S5:為狀態(tài)寄存器中斷允許標志的狀態(tài)。若S5=1,當前允許可屏蔽中斷;若S5=0,則禁止一切可屏蔽中斷。
S4S3
含義
00當前正在使用ES01當前正在使用SS10當前正在使用CS,或者未用任何段寄存器
11當前正在使用DSS4、S3:共有四個組態(tài),用以指明當前使用的段寄存器,如下表所示。(4)NMI(Non-MaskableInterrupt)、INTR(InterruptRequest)
NMI為不可屏蔽中斷請求信號輸入引腳,上升沿觸發(fā),CPU必須在當前指令結束后響應該中斷,不受可屏蔽中斷允許標志IF的限制,不能用軟件屏蔽。中斷類型號為2。
INTR為可屏蔽中斷請求信號輸入引腳,電平(或邊沿)觸發(fā),高電平(上升沿)有效,CPU在指令的最后一個周期采樣INTR,在當前指令結束后響應該中斷,可用軟件通過復位內部中斷允許標志IF來屏蔽INTR信號的中斷請求。(5)RD(Read):讀控制信號輸出引腳,低電平有效,用以指明要執(zhí)行一個對內存單元或I/O端口的讀操作,具體是讀內存單元,還是讀I/O端口,取決于控制信號。(6)CLK(Clock)(輸入):系統(tǒng)時鐘信號輸入引腳,時鐘信號為方波信號,占空比約為33%,即1/3周期為高電平,2/3周期為低電平,8088/8086的時鐘頻率(又稱為主頻)為5MHz,即從該引腳輸入的時鐘信號的頻率為5MHz。8086-1時鐘頻率為10MHz,8086-2時鐘頻率為8MHz。(7)RESET(Reset)(輸入):復位信號輸入引腳,高電平有效。8088/8086CPU要求復位信號至少維持4個時鐘周期才能起到復位的效果,復位信號輸入之后,CPU結束當前操作,進行復位操作,并對微處理器的標志寄存器PSW、IP、DS、SS、ES寄存器及指令隊列進行清零操作,而將CS設置為FFFFH。當此引腳變?yōu)榈碗娖綍r,CPU執(zhí)行重啟過程,從存儲器地址FFFF0H單元開始執(zhí)行指令。(8)READY(Ready):“準備好”狀態(tài)信號輸入引腳,高電平有效,“Ready”輸入引腳接收來自于內存單元或I/O端口向CPU發(fā)來的“準備好”狀態(tài)信號,表明內存單元或I/O端口已經準備好進行讀/寫操作。該信號是協(xié)調CPU與內存單元或I/O端口之間進行信息傳送的聯(lián)絡信號。
CPU在T3(或TW
)狀態(tài)采樣Ready信號,當Ready=0(無效),則在T3(或TW
)狀態(tài)結束后插入TW狀態(tài)(等待周期),當Ready=1(有效),進入T4狀態(tài),完成數據傳送。(9)TEST(Test):測試信號輸入引腳,低電平有效,TEST信號與WAIT指令結合起來使用,CPU執(zhí)行WAIT指令后,處于等待狀態(tài),只有當TEST引腳輸入低電平時,系統(tǒng)才脫離等待狀態(tài),繼續(xù)執(zhí)行被暫停執(zhí)行的指令。否則CPU繼續(xù)等待。(10)MN/MX(Minimum/MaximumModelControl):最小/最大模式設置信號輸入引腳,該輸入引腳電平的高、低決定了CPU工作在最小模式還是最大模式,當該引腳接+5V時,CPU工作于最小模式下,當該引腳接地時,CPU工作于最大模式下。(11)BHE/S7(BusHighEnable/Status)(輸出、三態(tài)):高8位數據總線允許/狀態(tài)復用信號復用輸出引腳。分時輸出BHE有效信號(T1狀態(tài),表示高8為數據線D15—D8上的數據有效)和S7狀態(tài)信號,但S7未定義任何實際意義。
BHE信號與A0信號配合,控制數據傳送時的字、字節(jié)方式。具體規(guī)定如下表所示。BHEA0操作所用DB總線引腳
00從偶地址開始傳送1個字(低字節(jié)在偶地址)AD15----AD001從奇地址開始傳送1個字節(jié)(高位字節(jié))AD15----AD810從偶地址開始傳送1個字節(jié)(低位字節(jié))AD7----AD011無效表BHE和A0的代碼組合和對應的操作(1)M/IO(Memory/InputandOutput):存儲器/IO端口控制輸出信號,是CPU區(qū)分進行存儲器訪問還是I/O訪問的輸出控制信號。
M/IO=1,選擇訪問存儲器(表示CPU與存儲器之間進行傳送數據);
M/IO=0,選擇訪問IO端口(表示CPU與之間IO端口進行傳送數據)。2.最小模式下的24--31引腳
當8088/8086CPU的MN/MX
引腳固定接+5V時,CPU處于最小模式下,這時候剩余的24—31共8個引腳的名稱及功能如下:(2)INTA(InterruptAcknowledge)(輸出):中斷響應信號輸出引腳,低電平有效,該引腳是CPU響應中斷請求后,向中斷源發(fā)出的認可信號,用以通知中斷源,以便提供中斷類型碼。該信號為兩個連續(xù)的負脈沖,在每個總線周期的T2、T3(TW)狀態(tài)INTA有效。第一個負脈沖:通知I/O接口,它發(fā)出的中斷請求已得到允許。第二個負脈沖:I/O接口收到第二個負脈沖后,往數據總線上送自己的中斷類型碼,從而CPU得到有關此中斷源的詳細信息。(3)ALE(AddressLockEnable)(輸出):地址鎖存允許輸出信號引腳,高電平有效,在任何一個總線周期的T1狀態(tài),ALE有效。CPU通過該引腳向地址鎖存器8282發(fā)出地址鎖存允許信號,把當前地址/數據復用總線上輸出的地址信息鎖存到地址鎖存器8282中去。(4)DEN(DataEnable)(輸出、三態(tài)):數據允許信號輸出引腳,低電平有效,當AD15----AD0作為數據總線使用時,DEN作為外部數據發(fā)送器8286的選通信號,表示CPU當前準備發(fā)送或接收一個數據。在訪問存儲器、I/O端口或中斷響應周期時DEN有效。(5)DT/R(DataTransmit/Receive)(輸出、三態(tài)):數據收發(fā)控制信號輸出引腳,CPU通過該引腳發(fā)出控制數據傳送方向的控制信號,在使用8286/8287作為數據總線收發(fā)器時,DT/R信號用以控制數據傳送的方向,DT/R=1,表示發(fā)送(數據由CPU經總線收發(fā)器8286/8287輸出);
DT/R=0
,表示接收(數據由外設經總線收發(fā)器8286/8287輸入到CPU)。(6)WR(Write)(輸出、三態(tài)):寫控制信號輸出引腳,低電平有效,與M/IO配合實現對存儲單元、I/O端口進行寫操作的控制。注:讀RD、寫WR信號不會同時有效。(7)HOLD(HoldRequest)(輸入):
總線保持請求信號輸入引腳。當系統(tǒng)中的其它總線部件要求占用總線時,向CPU發(fā)出總線請求信號HOLD=1,要求直接與存儲器傳送數據。(8)HLDA(HoldAcknowledge)(輸出):總線保持響應信號輸出引腳,高電平有效。當CPU監(jiān)測到HOLD有效時,就在當前總線周期T4狀態(tài)從HLDA引腳向外設發(fā)出應答信(HLDA=1),同時使CPU與AB、DB、CB總線浮空,總線請求部件收到HLDA信號后,獲得總線控制權(HOLD=1,HLDA=1)。在總線占有部件用完總線后,置HOLD=0無效,CPU檢測到HOLD=0后,使HLDA=0,CPU又重新獲得AB、DB、CB總線控制權。3.最大模式下的24--31引腳
當8088/8086CPU的引腳MN/MX接地時,CPU處于最大模式下,這時候剩余的24—31共8個引腳的名稱及功能如下:
(1)
QS1、QS0(InstructionQueueStatus)(輸出):指令隊列狀態(tài)信號輸出引腳,這兩個信號的組合給出了前一個T狀態(tài)中指令隊列的狀態(tài),以便于外部對8086CPU內部指令隊列的動作跟蹤,如下表所示:QS1QS0含義無操作
00011011從指令隊列的第一個字節(jié)取走代碼
指令隊列為空
除第一個字節(jié)外,還取走了后續(xù)字節(jié)中的代碼(2)S2、S1、S0(Buscyclestatus)(輸出):總線周期狀態(tài)信號輸出引腳,低電平有效,這些信號組合起來,可以指出當前總線周期中,所進行數據傳輸過程的類型,總線控制器8288利用這些信號來產生對存儲單元、I/O端口的控制信號。S2、S1、S0與具體物理過程之間的對應關系,如下表所示。
S2S1S08086總線周期8288命令000
001
010011100101
110111中斷響應
I/O端口讀I/O端口寫暫停
取指令碼存儲器讀存儲器寫無源狀態(tài)
INTAIORCIOWCAIOWC無MRDCMRDCMWTCAMWC無效有源狀態(tài):對于S2、S1、S0的組合來說,在前一個總線周期的T4狀態(tài)和本總線周期的T1和T2狀態(tài)中,至少有一個信號為0(低電平),每種組合都對應一個具體的總線操作,稱為有源狀態(tài)。無源狀態(tài):在總線周期的T3和TW狀態(tài)且READY=1時,S2S1S0=111(全為高電平),此時一個總線操作即將結束,另一個總線周期還未開始,稱為無源狀態(tài)。在無源狀態(tài)時,若S2、S1、S0其中任一信號的改變,都意味著一個新的總線周期的開始。(3)LOCK(Lock)(輸出、三態(tài)):總線封鎖輸出信號引腳,低電平有效。當該引腳輸出低電平時,系統(tǒng)中其它總線部件不能占用系統(tǒng)總線。
LOCK信號是由指令前綴LOCK產生的,在LOCK前綴后面的一條指令執(zhí)行完畢之后,便撤消LOCK信號。此外,在8086的2個中斷響應脈沖之間
LOCK信號也自動變?yōu)橛行У牡碗娖?,以防止其它總線部件在中斷響應過程中,占有總線而使一個完整的中斷響應過程被中斷。(4)RQ/GT0、RQ/GT1(Request/Grant)(雙向):總線請求信號輸入/總線允許信號輸出引腳。輸入時,表示其他主控者向CPU請求使用總線;輸出時,表示CPU對總線請求的響應信號。這兩個信號端可供CPU以外的兩個處理器,用來發(fā)出使用總線的請求信號和接收CPU對總線請求信號的應答。這兩個引腳都是雙向的,請求與應答信號在同一引腳上分時傳輸,方向相反。其中RQ/GT0比RQ/GT1的優(yōu)先級高。
4.8086/8088CPU的引腳分類
(1)數據/地址復用線、地址/狀態(tài)復用線:AD0~AD7、AD8~AD15、A16/S3~A19/S6(2)電源、地:VCC、GND(2個)(3)最小模式下與地址總線有關的控制信號:ALE(4)最小模式下與數據總線有關的信號:DEN、DT/R、BHE/S7
(5)最小模式下與CPU有關的控制信號:RESET、CLK、TEST、READY、HOLD、HLDA(6)最小模式下與存儲器、I/O操作有關的信號:M/IO、RD、WR(7)最小模式下與中斷有關的信號:NMI、INTR、INTA(8)最小/最大模式選擇信號:MN/MX(9)最大模式下總線周期狀態(tài)信號:S2、S1、S0(10)最大模式下指令隊列狀態(tài)信號:QS1、QS0(11)最大模式下總線請求信號/總線請求允許信號:RQ/GT1、RQ/GT0(12)總線封鎖信號:LOCK8088CPU注意與8086的不同
最小模式最大模式最小模式最大模式VCCA152.38086存儲器組織2.3.1段地址和偏移地址1.存儲器地址的分段
由于CPU內部的寄存器都是16位的,為了能夠提供20位的物理地址,8086系統(tǒng)中采用了存儲器分段的方法,每個段為64KB,由段寄存器來確定存儲單元的段地址,由指令提供該單元相對于相應段起始地址的16位偏移量。這樣,系統(tǒng)的整個存儲空間可分為16個互不重疊的邏輯段。如右圖所示。
存儲器的每個段的容量為64KB,并允許在整個存儲空間內浮動,即段與段之間可以部分重疊、完全重疊、連續(xù)排列,非常靈活,如右圖所示。2.存儲容量
8086系統(tǒng)有20根地址總線,因此,它可以直接尋址的存儲器單元數為220=1MB,這1MB的存儲器單元按照00000~FFFFFH來編址。
3.邏輯地址(LA)和物理地址(PA)
物理地址:
8086可直接尋址1MB的存儲空間,其地址區(qū)域為00000H~FFFFFH,是與存儲單元一一對應的20位地址,我們稱之為存儲單元的物理地址。就是存儲器的實際地址,它是指CPU和存儲器進行數據交換時所使用的地址(20位)。
邏輯地址:是在程序中使用的地址,它由段地址和偏移地址兩部分組成(都是16位)。邏輯地址的表示形式為“段地址:偏移地址”。
物理地址是由段地址與偏移地址共同決定的,段地址來自于段寄存器(CS、DS、ES、SS),是十六位地址,由段地址及偏移地址計算物理地址的表達式為:
物理地址=段地址×16+偏移地址
例如:系統(tǒng)啟動后,指令的物理地址由CS的內容與IP的內容共同決定,由于系統(tǒng)啟動的CS=FFFFH,IP=0000H,所以初始指令的物理地址為FFFF0H,我們可以在FFFF0H單元開始的幾個單元中,固化一條無條件轉移指令的代碼,即轉移到系統(tǒng)初始化程序部分所在存儲器的地址位置處。注意:物理地址與邏輯地址并不是一一對應的,舉例:6830H:12A0H和6840H:11A0H,物理地址都為695A0H。20位物理地址是由段地址與偏移地址共同決定
4.偏移地址
偏移地址是某存儲單元相對其所在段起始位置的偏移字節(jié)數,或簡稱偏移量。它是一個16位的地址,根據指令的不同,它可以來自于CPU中不同的16位寄存器(IP、SP、BP、SI、DI、BX等)或是一個直接在程序中給出的地址偏移量。5.20位物理地址的形成代碼段:物理地址=CS×16+IP數據段:物理地址=DS×16+(SI、DI等)附加段:物理地址=ES×16+(BP、BX等)堆棧段:物理地址=SS×16+(SP、BP等)2.3.28086存儲器的分體結構(P34)
存儲器是按字節(jié)進行組織的,兩個相鄰的字節(jié)被稱為一個“字”。存放的信息若是以字節(jié)(8位)為單位的,將在存儲器中按順序排列存放;若存放的數據為一個字(16位)時,則將每一個字的低字節(jié)(低8位)存放在低地址中,高字節(jié)(高8位)存放在高地址中,并以低地址作為該字的地址。在組成與8086CPU連接的存儲器時,1M字節(jié)的存儲空間實際上被分成兩個512K字節(jié)的存儲體,分別叫奇地址存儲體和偶地址存儲體。奇地址存儲體(高字節(jié)存儲體):與8086CPU的高8位數據線D15~D8相連,地址均為奇地址,由BHE引腳選通。偶地址存儲體(低字節(jié)存儲體):與8086CPU的低8位數據線D7~D0相連,地址均為偶地址,由最低位地址線A0選通。
1MB的存儲器單元的地址分為奇地址和偶地址,由BHE和A0控制讀寫順序。BHE=0(有效),從奇地址傳送高8位數據;A0=0,從偶地址傳送低8位數據。BHE與A0的組合及對應的操作如下表所示。
BHEA0操作所用DB總線引腳
00從偶地址開始傳送1個字(低字節(jié)在偶地址)AD15----AD001從奇地址開始傳送1個字節(jié)(高位字節(jié))AD15----AD810從偶地址開始傳送1個字節(jié)(低位字節(jié))AD7----AD011無效
如果一個16位數據,高8位數據存儲在存儲器的奇地址單元中,低8位數據存儲在存儲器的偶地址單元中,則讀寫該數據需要一個總線周期。
如果一個16位數據,高8位數據存儲在存儲器的偶地址單元中,低8位數據存儲在存儲器的奇地址單元中,則讀寫該數據需要兩個總線周期。第一個總線周期用于在奇地址中完成低8位數據的傳送;第二個總線周期用于在偶地址中完成高8位數據的傳送;這些都是8086自動完成的。所以,這種情況下,除增加一個總線周期外,其余與從偶地址開始的16位數據的操作是一樣的。但編程時盡量“對準存放”,以縮短程序執(zhí)行的時間。8086與8088存儲器的區(qū)別(P36)2.3.3堆棧的概念(P33)堆棧:在存儲器中開辟一段區(qū)域,用于存儲一些暫時需要保護而以后還要用到的數據(如中斷現場的保護與恢復、子程序現場的保護與恢復等),這個區(qū)域稱為堆棧。堆棧的特點:
(1)堆棧存儲數據的原則為后進先出。
(2)堆棧單元在存儲器中的位置由SS:SP確定。(3)堆棧指針SP在8086系統(tǒng)中始終指向棧的頂部,即:始終指向最后壓入棧中的數據的地址。(4)8086系統(tǒng)中棧的操作是以字為單位的。執(zhí)行一次入棧操作,自動使SP-2然后數據入棧,直至SP=0棧滿為止。執(zhí)行一次出棧操作,數據出棧然后自動使SP+2。
(5)PUSH和POP指令要成對出現。功能:主要用于保護中間數據,子程序、中斷程序的現場等。AX=3322H,BX=1100H,CX=6655HSS=C000H,SP=1000H
堆棧主要用于中斷和子程序調用時的斷點和現場保護,中斷或調用結束后還要恢復斷點和現場。PUSH和POP指令要成對出現,而且要先入后出,才能正確恢復斷點和現場。2.48086工作模式和總線操作8088/8086CPU工作在兩種模式下:最小模式(最小工作方式):單微處理器系統(tǒng)(系統(tǒng)中只有一個8086微處理器),所有的總線控制信號,都是直接由8086CPU產生的,適用于規(guī)模較小的微機應用系統(tǒng)。當把8086的33腳MN/MX接+5V時,8086CPU就處于最小工作方式。
最大模式(最大工作方式):多微處理器系統(tǒng)(包含有兩個或多個微處理器,一個主處理器8086CPU,其他的處理器稱為協(xié)處理器它們是協(xié)助主處理器工作的。),主要用在中等或大規(guī)模的8086系統(tǒng)中。當把8086的33腳MN/MX接地時,8086CPU就處于最大模式。2.4.1最小模式系統(tǒng)74LS37374LS24582841.數據總線緩沖器74LS244和74LS245(1)單向數據總線緩沖器74LS244
P38
圖2.11兩個控制信號:
使能控制信號1G
使能控制信號2G1G=0,1A11A4端的信號被傳送到1Y11Y4;
2G=0,2A12A4端的信號被傳送到2Y1~2Y4;當1G和2G=1時,輸出呈高阻態(tài)。常把1G和2G連起來,由1個片選信號控制8位。(2)雙向數據總線緩沖器74LS245(或Intel8286/8287
)P38
圖2.12兩個控制信號:
使能控制信號G
方向控制DIR
只有G=0,數據才能傳輸,AB或AB;
DIR=1,AB;
DIR=0,AB。(2)雙向數據總線收發(fā)器74LS24574LS245是典型的8位總線收發(fā)器,8位輸入(A1----A8),8位輸出(B1----B8)。只有G=0,數據才能傳輸。
DIR為控制數據傳送方向信號,DIR=1時,A1----A8為輸入,B1----B8為輸出;DIR=0時,B1----B8為輸入,A1----A8
為輸出。門控信號G(低電平有效)。
74LS245與8086連接時,作為8086外部總線收發(fā)器,8086有16條數據線,需要2片74LS245
。74LS245的輸入與8086的地址線AD15----AD0相連,輸出即為8086系統(tǒng)的數據總線;74LS245的DIR接8086(或8288)的DT/R,74LS245的G接8086(或8288)的DEN。2.鎖存器74LS373(或Intel8282/8283)兩個控制端:
輸入使能端G
允許輸出端OEG=1,直通;G=0,鎖存,D端變化不影響輸出。
OE=0,Q經三態(tài)門反相后,傳到輸出端O;OE=1,則G控制無效,輸出呈高阻態(tài),與總線斷開。2.鎖存器74LS373(或Intel8282)
P39圖2.1374LS373是典型的8位鎖存器,8位輸入(1D----8D),8位輸出(1O----8O),輸入使能信號(鎖存輸入信號)G,輸出數據允許信號OE(低電平有效)。8282作為鎖存器,其用法與74LS373完全一樣。
74LS373與8086連接時,作為8086外部地址鎖存器,8086有20條地址線,加上高8位數據允許引腳BHE,共21條線,需要3片74LS373。74LS373的輸入與8086的地址線A19----A16、AD15----AD0、BHE相連,輸出即為8086系統(tǒng)的地址線和BHE;74LS373的G接8086的ALE,74LS373的OE接地,直接數據輸出允許。3.時鐘發(fā)生器8284
P40
圖2.14
(1)輸入晶振與復位晶振接8284的X1、X2引腳(F/C接低電平,選擇外界晶振產生時鐘),外部復位接RST引腳。
(2)輸出
CLK(系統(tǒng)時鐘);RESET(復位)
READY(準備好);PCLK(輔助時鐘)(3)外部復位的接法
常用的有上電復位和按鍵復位兩種方法,如下圖所示。
8284低電平復位。
上電復位按鍵復位8284與8086的連接8086最小模式系統(tǒng)配置8086最小模式下的典型配置
1.MN/MX端接+5V,決定了CPU的工作模式;2.需要一片8284A,作為時鐘信號發(fā)生器;3.需要三片74LS273或8282,用來作為地址信號的鎖存器;4.當系統(tǒng)中所連的存儲器和外設端口較多時,需要增加數據總線的驅動能力,這時,需用2片74LS245作為總線收發(fā)器。
取指令進入指令隊列和訪問存儲器、I/O端口時均需BIU執(zhí)行一個總線周期。
1.時鐘周期:CPU時鐘頻率的倒數稱為時鐘周期,也稱T狀態(tài),是8086操作的最小時間狀態(tài)。
2.總線周期:BIU完成一次訪問存儲器或I/O端口操作所需要的時間稱為總線周期。一個基本的總線周期是由4個(或4個以上)時鐘周期組成的。
3.指令周期:執(zhí)行一條指令所需要的時間稱為指令周期,不同指令的指令周期的長短是不同的。一個指令周期是由幾個總線周期組成的。
時序:時序是計算機操作運行的時間順序。2.4.3總線操作時序4.一個基本的總線周期的4個T狀態(tài):
T1:CPU向多路復用總線發(fā)出地址信息,指出要尋址的存儲單元或I/O端口。
T2:低16位地址信號從總線上撤銷,呈高阻。高4位地址總線輸出狀態(tài)信息
T3:高4位總線仍然輸出狀態(tài)信息,低16位總線上出現的是數據信號。讀----存儲器或I/O端口的數據送到總線上,寫----CPU的數據送到總線上。注:當被寫入(或讀出)數據的存儲器或I/O端口不能及時配合CPU傳送數據的情況下,存儲器或I/O端口向CPU發(fā)出數據未準備好信號(READY),則CPU會在T3之后插入一個或多個附加的時鐘周期TW(等待狀態(tài)),直至存儲器或I/O端口準備好傳送數據為止。
T4:總線周期結束。8086微機系統(tǒng)的主要操作
8086/8088微機系統(tǒng),能夠完成的操作有下列幾種主要類型:系統(tǒng)的復位與啟動操作;暫停操作;總線操作(I/O讀、I/O寫、存儲器讀、存儲器寫);中斷操作;最小模式下的總線保持;最大模式下的總線請求/允許。
系統(tǒng)的復位和啟動操作
8086/8088的復位和啟動操作,對最大小模式都一樣的,是通過RESET引腳上的觸發(fā)信號來執(zhí)行的,當RESET引腳上至少維持有4個時鐘周期的高電平時,CPU就結束當前操作,進入初始化(復位)過程。包括把各內部寄存器(除了CS)清0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年九州職業(yè)技術學院高職單招職業(yè)適應性測試備考題庫及答案詳細解析
- 2026年廣州工程技術職業(yè)學院單招職業(yè)技能考試模擬試題含詳細答案解析
- 2026年江蘇航空職業(yè)技術學院高職單招職業(yè)適應性測試備考題庫及答案詳細解析
- 2026年廣東建設職業(yè)技術學院單招職業(yè)技能考試模擬試題含詳細答案解析
- 2026年黑龍江藝術職業(yè)學院單招職業(yè)技能考試參考題庫含詳細答案解析
- 2026年長春信息技術職業(yè)學院高職單招職業(yè)適應性測試備考試題及答案詳細解析
- 2026年江西生物科技職業(yè)學院單招職業(yè)技能考試備考題庫含詳細答案解析
- 2026年成都農業(yè)科技職業(yè)學院單招綜合素質筆試模擬試題含詳細答案解析
- 2026年荊州職業(yè)技術學院單招綜合素質筆試模擬試題含詳細答案解析
- 2026年重慶輕工職業(yè)學院單招綜合素質筆試備考試題含詳細答案解析
- GB/T 46509-2025玩具中揮發(fā)性有機化合物釋放量的測定
- 總公司與分公司承包協(xié)議6篇
- 鋼結構防火涂料應用技術規(guī)程TCECS 24-2020
- 煉鋼生產線自動化控制系統(tǒng)建設方案
- 塔吊安裝安全培訓教育課件
- 民事答辯狀(信用卡糾紛)樣式
- 人教版七年級英語下冊單詞默寫單
- 設備安裝施工應急預案
- 拼多多會計課件
- 卡西歐手表WVA-M600(5161)中文使用說明書
- 電力高處作業(yè)培訓
評論
0/150
提交評論