版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第三章 通用微處理器,本章學(xué)習(xí)要點:,通用微處理器的基本結(jié)構(gòu) Intel 8086微處理器的編程結(jié)構(gòu) Intel 8086微處理器的引腳功能 Intel 8086微處理器的總線周期 Intel 8086微處理器的系統(tǒng)組成,3.6 Intel 8086的結(jié)構(gòu)與應(yīng)用特性,3.6.1 Intel 8086的編程結(jié)構(gòu) Intel 8086是80 x86系列微處理器中最具有代表性的產(chǎn)品,它是標(biāo)準(zhǔn)的16位字長的微處理器,采用HMOS工藝制造,集成度約為29000個晶體管。Intel 8086有16條數(shù)據(jù)線和20條地址線,可尋址的地址空間范圍為1M字節(jié)即 1 MB。Intel 8086工作時,只需提供單5
2、V電源和單相時鐘脈沖信號,時鐘頻率為510 MHz。,通用微處理器,3.6.1 Intel 8086的編程結(jié)構(gòu),從使用者的角度來看,Intel 8086在功能上可以分為兩部分,即總線接口部件BIU(Bus Interface Unit)和執(zhí)行部件EU(Execution Unit)。它們在微處理器內(nèi)部擔(dān)負(fù)著不同的工作任務(wù)。這兩個部件并行地工作,能使大部分取指令操作與執(zhí)行指令操作重疊地進(jìn)行(即所謂“流水線”結(jié)構(gòu))。由于EU執(zhí)行的是BIU已從存儲器取出的指令,所以在大多數(shù)情況下,取指令的時間大大縮短,從而加快了程序的運行速度。,通用微處理器,通用微處理器,Intel 8086的編程結(jié)構(gòu),1總線接口
3、部件BIU 總線接口部件的功能是負(fù)責(zé)與存儲器、端口傳送數(shù)據(jù)??偩€接口部件要從內(nèi)存取指令送到指令隊列。執(zhí)行指令時,總線接口部件從指定的內(nèi)存單元或者外設(shè)端口中取數(shù)據(jù),將數(shù)據(jù)傳送給執(zhí)行部件,或者把執(zhí)行部件的操作結(jié)果傳送到指定的內(nèi)存單元或外設(shè)端口中。,3.6.1 Intel 8086的編程結(jié)構(gòu),通用微處理器,總線接口部件由下列各部分組成 1)4個段地址寄存器:CS、DS、SS、ES。 CS:16位的代碼段寄存器CS(Code Segment), 存放當(dāng)前程序代碼段起始地址的高16位。 DS:16位的數(shù)據(jù)段寄存器DS(Data Segment), 存放數(shù)據(jù)段起始地址的高16位。 ES:16位的附加段寄存
4、器ES(Extra Segment), 存放擴(kuò)展數(shù)據(jù)段起始地址的高16位。 SS:16位的堆棧段寄存器SS(Stack Segment), 存放堆棧數(shù)據(jù)段起始地址的高16位。,通用微處理器,3.6.1 Intel 8086的編程結(jié)構(gòu),2)16位的指令指針寄存器IP(Instruction Pointer) 它的內(nèi)容始終是當(dāng)前需要取出指令的主存字節(jié)單元的偏移地址,當(dāng)BIU從內(nèi)存中取出一個指令字節(jié)后,IP就自動加1,指向下一個要取出的指令字節(jié)。,通用微處理器,3.6.1 Intel 8086的編程結(jié)構(gòu),3)20位的地址加法器 8086的主存地址為20位,而內(nèi)部寄存器和數(shù)據(jù)總線均為16位,只能覆蓋物
5、理長度為64 KB的空間,為了解決20位地址產(chǎn)生的問題,8086訪問內(nèi)存時把地址空間分段,一個“段”的邏輯區(qū)域長度為64 KB,而段的起始地址由稱為“段寄存器”的4 個16位寄存器決定。8086通過段寄存器的內(nèi)容與指令指針寄存器IP的內(nèi)容的加法運算,就可以得到訪問主存的4 個存儲段:代碼段、數(shù)據(jù)段、堆棧段和附加段的20位物理地址。,通用微處理器,3.6.1 Intel 8086的編程結(jié)構(gòu),4) 6字節(jié)的指令隊列存放預(yù)取的指令 指令隊列(Queue)存放預(yù)取的指令,采用預(yù)取指令的方法將減少微處理器的等待時間,提高運行效率。,通用微處理器,3.6.1 Intel 8086的編程結(jié)構(gòu),2執(zhí)行部件EU
6、 執(zhí)行部件的功能就是負(fù)責(zé)指令的執(zhí)行。由通用寄存器、標(biāo)志寄存器、算術(shù)邏輯部件(ALU)和控制電路等組成。其功能如下: 對寄存器內(nèi)容和指令操作數(shù)進(jìn)行算術(shù)邏輯運算; 進(jìn)行內(nèi)存有效地址的計算; 向BIU提供數(shù)據(jù)和所需訪問目的地的地址; 并對通用寄存器、標(biāo)志寄存器和指令操作數(shù)進(jìn)行管理;,3.6.1 Intel 8086的編程結(jié)構(gòu),通用微處理器,1)數(shù)據(jù)寄存器 累加器AX(Accumulator) 基址寄存器BX(Base) 計數(shù)寄存器CX(Count) 數(shù)據(jù)寄存器DX(Data) 這4個16位寄存器可分為高8位(AH,BH,CH和DH)與低8位(AL,BL,CL和DL)兩組8位寄存器使用,可分別尋址,獨
7、立操作,主要用來保存算術(shù)或邏輯運算的操作數(shù)、中間運算結(jié)果。,2執(zhí)行部件EU,通用微處理器,2)指針寄存器 堆棧指針寄存器SP(Stack Pointer) 基址指針寄存器BP(Base Pointer),2執(zhí)行部件EU,通用微處理器,3)變址寄存器 源變址寄存器SI(Source Index) 目的變址寄存器DI(Destination Index) 這4個寄存器也可當(dāng)做數(shù)據(jù)寄存器使用。,例:C語言循環(huán)程序段: p = (char*)ADR_D; q = (char*)ADR_S; for( count=0; countLENGTH; count+ ) *p+ = *q+; 8086指令:LE
8、A SI, ADR_S; LEA DI, ADR_D; LEA CX, LENGTH; CLD; MOVS ADR_D, ADR_S; 數(shù)據(jù)段DS與源變址SI的初值結(jié)合 = ADR_S 附加段ES與目的變址DI的初值結(jié)合 = ADR_D 計數(shù)寄存器CX初值 = length 方向標(biāo)志位DF=0,決定了指針自動加一 指令執(zhí)行中,SI和DI的值遞增,即指針p和q的值遞增。,4)程序狀態(tài)寄存器PSW 這是一個存放條件碼標(biāo)志、控制標(biāo)志和系統(tǒng)標(biāo)志的16位專用寄存器,故又稱標(biāo)志寄存器。從功能上將它們分成兩類: 狀態(tài)標(biāo)志位(CF、AF、SF、PF、OF、ZF),用以記錄當(dāng)前運算結(jié)果的狀態(tài)。對狀態(tài)位的設(shè)置是由
9、Intel 8086根據(jù)當(dāng)前運算結(jié)果而自動設(shè)置的,它們一般作為轉(zhuǎn)移指令的控制條件。 控制標(biāo)志位(TF、IF、DF),用以控制Intel 8086的運行狀態(tài),由指令或系統(tǒng)程序設(shè)置。,2執(zhí)行部件EU,通用微處理器,CF進(jìn)位標(biāo)志(Carry Flag):當(dāng)進(jìn)行加法運算時結(jié)果使最高位產(chǎn)生進(jìn)位,或在減法運算時結(jié)果使最高位產(chǎn)生借位,則 CF=1,否則 CF=0。此外,循環(huán)指令也使 CF=1。,AF輔助進(jìn)位標(biāo)志(Auxiliary Carry Flag):當(dāng)加法運算時,如果低 4 位向高位有進(jìn)位(即第3位向第4位進(jìn)位)或減法運算時,如果低4位向高位借位(即第3位向第4位借位),則AF=1,否則AF=0。AF
10、常用于BCD碼的加法調(diào)整。,PF奇偶標(biāo)志(Parity Flag):運算結(jié)果若低8位所含1的個數(shù)為偶數(shù),則 PF=1,否則 PF=0。 ZF全零標(biāo)志(Zero Flag):當(dāng)運算結(jié)果使有效位數(shù)的各位全為零時ZF=1,否則ZF=0。,SF符號標(biāo)志(Sign Flag):當(dāng)運算結(jié)果為負(fù)時SF=1,否則SF=0。SF的值就是有符號數(shù)的最高位(符號位)。 OF溢出標(biāo)志(Overflow Flag):當(dāng)運算結(jié)果超出了機器所能表示的范圍時,則OF=1,表示溢出,否則OF=0,表示不溢出。,DF方向標(biāo)志(Direction Flag):串操作的控制方向標(biāo)志,串操作中如果DF=0,則地址遞增,若 DF=1,則
11、地址遞減。可用CLD和STD指令清DF和置DF值。,IF中斷允許標(biāo)志(Interrupt Enable Flag):如果 IF=1,則允許微處理器響應(yīng)可屏蔽中斷,IF=0,則禁止可屏蔽中斷??捎肧TI和CLI分別使IF=1和IF=0。,4)程序狀態(tài)寄存器PSW,2執(zhí)行部件EU,通用微處理器,D15 D0,TF 陷阱標(biāo)志(Trap Flag):如果 TF=1;則微處理器按單步方式執(zhí)行指令,執(zhí)行一條指令就產(chǎn)生一次類型為1的內(nèi)部中斷(單步中斷),此有時稱之為跟蹤標(biāo)志。該標(biāo)志沒有對應(yīng)的指令操作,只能通過堆棧操作改變TF狀態(tài)。,CF,AF,PF,ZF,SF,DF,OF,IF,TF,總線接口部件BIU和執(zhí)
12、行部件EU并不是同步工作的,兩者的動作管理遵循如下原則:每當(dāng)Intel 8086的指令隊列中有兩個空字節(jié),BIU就會自動把指令取到指令隊列中。同時,EU從指令隊列取出一條指令,并用幾個時鐘周期去分析、執(zhí)行指令。當(dāng)指令隊列已滿,而且EU對BIU又無總線訪問請求時,BIU便進(jìn)入空閑狀態(tài)。在執(zhí)行轉(zhuǎn)移、調(diào)用和返回指令時,指令隊列中的原有內(nèi)容被自動清除。,3總線接口部件和執(zhí)行部件的管理,通用微處理器,Intel 8086的總線周期至少由4個時鐘周期組成,分別以T1、T2、T3和T4表示,如下圖所示,T又稱為狀態(tài)(state)。,3.6.2 Intel 8086總線周期的概念,通用微處理器,一個總線周期完
13、成一次數(shù)據(jù)傳輸,至少要有傳送地址和傳送數(shù)據(jù)兩個階段。在第一個時鐘周期T,期間Intel 8086輸出地址,隨后的三個周期(T2,T3和T4)用來傳送數(shù)據(jù),并且數(shù)據(jù)傳送必須在T2 T4這三個時鐘周期內(nèi)完成,否則在T4周期后,總線將進(jìn)行另一次操作,開始下一個總線周期。,3.6.3 Intel 8086的引腳信號和工作模式,通用微處理器,1最小模式和最大模式的概念 為了適應(yīng)各種各樣的應(yīng)用情況,8086微處理器可以在兩種模式下工作,即最小模式和最大模式。 所謂最小模式,是指在系統(tǒng)中只有Intel 8086 一個微處理器,而所有的總線控制信號都由 Intel 8086直接產(chǎn)生,因此系統(tǒng)中的總線控制電路被
14、減到最少。 而最大模式是相對最小模式而言的,此時系統(tǒng)中有兩個或多個微處理器,其中有一個是主處理器Intel 8086,其他的處理器稱為協(xié)處理器,它們協(xié)助主處理器工作。,3.6.3 Intel 8086的引腳信號和工作模式,通用微處理器,28086的引腳信號和功能 1)地址/數(shù)據(jù)引腳 AD15 AD0:地址/數(shù)據(jù)復(fù)用,分時工作、雙向三態(tài)。 16位地址線A15 A0,輸出訪問存儲器或I/O設(shè)備的地址信息(單向)。 16位數(shù)據(jù)線D15D0。與存儲器和I/O設(shè)備交換數(shù)據(jù)信息(雙向)。,28086的引腳信號和功能 2)地址/狀態(tài)引腳 A19/S6 A16/S3:地址/狀態(tài)復(fù)用,分時工作,輸出,三態(tài)總線。
15、 輸出地址信號時,輸出訪問存儲器的20位地址中的高4位:地址A19 A16。,3.6.3 Intel 8086的引腳信號和工作模式,通用微處理器,工作狀態(tài)S6 S3的含義: S6指示當(dāng)前是否與總線相連, S6 =0:相連 S6=1:不相連,S5表明中斷允許標(biāo)志當(dāng)前設(shè)置 S5=0:表示中斷是關(guān)閉的,禁止一切可屏蔽中斷源的中斷請求; S5=1:表示中斷是開放的,允許一切可屏蔽中斷源的中斷請求。,28086的引腳信號和功能 3)控制引腳 RESET:復(fù)位信號,輸入,高電平有效。 RESET信號至少要保持4個時鐘周期。復(fù)位時,標(biāo)志寄存器IP,DS,SS,ES為0,CS = FFFFH,復(fù)位后 8086
16、從FFFF0H處開始取指令執(zhí)行程序。,3.6.3 Intel 8086的引腳信號和工作模式,通用微處理器,RD:讀控制信號,三態(tài)輸出,低電平有效。RD = 0,表示正在對存儲器或I/O端口進(jìn)行讀操作。,READY:準(zhǔn)備就緒信號,輸入,高電平有效。 READY = 1,表示訪問的存儲器或 I/O端口已準(zhǔn)備好傳送數(shù)據(jù)。,若在總線周期T3狀態(tài)檢測到READY =0,表示未準(zhǔn)備好,就自動插入一個或多個等待狀態(tài)Tw,直到READY = 1為止,然后進(jìn)入T4狀態(tài),完成數(shù)據(jù)傳送,結(jié)束當(dāng)前總線周期。,NMI:不可屏蔽中斷請求信號,輸入,上升沿觸發(fā)。該請求信號不受IF狀態(tài)的影響,也不能用軟件屏蔽,一旦該信號有效
17、,則執(zhí)行完當(dāng)前指令后Intel 8086立即響應(yīng)中斷。,INTR:可屏蔽中斷請求信號,輸入,高電平有效。當(dāng)INTR = 1時,表明外部設(shè)備發(fā)出中斷請求,8086在當(dāng)前指令周期的最后一個T狀態(tài)采樣該信號,若此時 PSW的IF = 1,8086響應(yīng)中斷,并在執(zhí)行完當(dāng)前指令后進(jìn)入中斷處理過程。,BHE/S7:高8位數(shù)據(jù)線有效/狀態(tài)復(fù)用引腳,三態(tài)輸出。BHE在總線周期的T1狀態(tài)時輸出,S7在T2-T4時輸出。在8086中,當(dāng)BHE/S7引腳上輸出BHE信號時,表示總線高8位ADl5AD8上數(shù)據(jù)有效。,MN/MX:工作模式選擇信號,輸入。 MN/MX =1,8086工作于最小模式; MN/MX = 0,
18、8086工作于最大模式。,TEST:測試信號,輸入,低電平有效。它用于多處理器系統(tǒng)中,且只有在執(zhí)行WAIT 指令時才使用。當(dāng)CPU執(zhí)行WAIT指令時,每隔5個時鐘周期對該引腳的輸入進(jìn)行一次測試,若為高電平,CPU 將停止取下條指令而進(jìn)入等待狀態(tài),重復(fù)執(zhí)行WAIT指令,直至為低電平時,等待狀態(tài)結(jié)束,CPU才繼續(xù)往下執(zhí)行被暫停的指令,使CPU與外部硬件同步。等待期間允許外部中斷。,28086的引腳信號和功能 3)控制引腳(最小模式),3.6.3 Intel 8086的引腳信號和工作模式,通用微處理器,WR:寫控制信號,輸出,低電平有效。WR = 0,表示正在對存儲器或I/O端口進(jìn)行寫操作。,M/I
19、O:存儲器或I/O端口訪問控制信號,三態(tài)輸出。 M/IO = 1,表示正在訪問存儲器; M/IO = 0,表示正在訪問I/O端口。,INTA:中斷響應(yīng)信號,輸出,低電平有效。表示8086 響應(yīng)了外部設(shè)備發(fā)來的中斷請求信號INTR。,ALE:地址鎖存允許信號,輸出,高電平有效。用來鎖存地址信號A15A0,以便于分時使用AD15AD0地址/數(shù)據(jù)總線。,DT/R:數(shù)據(jù)發(fā)送/接收控制信號,三態(tài)輸出。此信號控制數(shù)據(jù)總線上的收發(fā)器8286的數(shù)據(jù)傳送方向, DT/R = 1,發(fā)送數(shù)據(jù)/寫操作;DT/R = 0,接收數(shù)據(jù)/讀操作。,DEN:數(shù)據(jù)允許信號,三態(tài)輸出,低電平有效。作為數(shù)據(jù)總線收發(fā)器8286的選通信
20、號使用。,HOLD:總線請求信號,輸入,高電平有效。當(dāng)系統(tǒng)中8086之外的另一個控制器要求使用總線時,通過它向8086發(fā)出請求信號。,HLDA:總線請求響應(yīng)信號,輸出,高電平有效。當(dāng)HLDA有效時,表示8086對其他控制器的總線請求做出響應(yīng),與此同時,所有與三總線相接的引腳呈現(xiàn)高阻狀態(tài),從而讓出總線控制權(quán)。,28086的引腳信號和功能 3)控制引腳(最大模式) S2,S1,S0總線周期狀態(tài)信號:輸出。這些信號組合起來,可以指出當(dāng)前總線周期中所進(jìn)行的數(shù)據(jù)傳輸過程的類型。最大模式系統(tǒng)中的總線控制器8288就是利用這些狀態(tài)信號來產(chǎn)生對存儲器和I/O的控制信號。,3.6.3 Intel 8086的引腳
21、信號和工作模式,通用微處理器,對于S1,S2,S3來講,在前一個總線周期的T4狀態(tài)和本總線周期的T1,T2狀態(tài)中,至少有一個信號為低電平,在每種情況下,都對應(yīng)了某一個總線操作過程,通常稱為有源狀態(tài)。,在總線周期的T3和Tw狀態(tài)且READY信號為高電平時, S2, S1, S0均為高電平,此時一個總線操作過程就要結(jié)束,另一個新的總線周期還未開始,這稱為無源狀態(tài)。而在總線周期的T4狀態(tài)(最后),S2, S1, S0中任何一個或幾個的改變,都意味著下一個新的總線周期開始。,RQ/GT0,RQ/GT1:總線請求信號(輸入)/總線請求允許信號(輸出),雙向,低電平有效。這兩個引腳可供8086以外的兩個處
22、理器用來發(fā)出使用總線的請求信號和接收 8086對總線請求的允許信號??偩€請求信號和允許信號在同一引腳上傳輸,但方向相反。,LOCK:總線封鎖信號,三態(tài)輸出,低電平有效。 若LOCK =0,8086不允許其他控制器占用總線。信號是由指令前綴LOCK產(chǎn)生的。在LOCK前綴后面的一條指令執(zhí)行完后,便撤銷了信號。,此外,在8086的 2個中斷響應(yīng)脈沖之間,信號也自動變?yōu)橛行щ娖?,以防止其他總線主部件在中斷響應(yīng)過程中占用總線而使一個完整的中斷響應(yīng)過程被打斷。,QS1,QS2:指令隊列狀態(tài)信號,輸出。 這兩個信號組合可指示BIU中指令隊的列狀態(tài),以提供一種讓其它處理器監(jiān)視CPU中指令隊列的狀態(tài)。,3.6.
23、3 Intel 8086的引腳信號和工作模式,通用微處理器,28086的引腳信號和功能 4)時鐘線、電源線和地線 CLK:時鐘信號輸入引腳。8086要求時鐘信號的占空比為33%,即1/3周期為高電平,2/3周期為低電平。 8086采用單+5 V電源供電,由40腳接入。1腳和20腳接地 。,3.6.4 Intel 8086的系統(tǒng)組成,1存儲組織、存儲器分段 1)存儲組織,8086有20條地址線,它的直接尋址能力為220 = 1MB,所以在一個8086組成的系統(tǒng)中,可以有多達(dá)1MB的存儲器。這1MB邏輯上可組織成一個線性矩陣,地址從00000H FFFFFH。每個存儲單元都有一個地址,每個單元存儲
24、一個字節(jié)。任何兩個相鄰的字節(jié)單元可以存放一個16位的字,一個字的每個字節(jié)有一個字節(jié)地址,這兩個地址中數(shù)值較小的地址作為該字的地址。,圖1 存儲器地址 圖2 存儲器中字與字節(jié)的存放 圖3 存儲器中指針的存放,存儲器對指針的存放一般是按雙字進(jìn)行的,主要用來尋址位于非現(xiàn)行可尋址段中的數(shù)據(jù)和代碼。指針的低位字代表在某段中的偏移量,而高位字則代表該段的段基址。,1存儲組織、存儲器分段,8086有訪問字節(jié)的指令也有訪問字的指令,不論是讀存儲器還是寫存儲器,每次總是16位。執(zhí)行訪問字節(jié)指令時只用了8位,另外8位則被忽略了。這16位總是存儲器內(nèi)兩個連續(xù)字節(jié)單元的內(nèi)容,如果其中第一個字節(jié)的地址是偶地址,可以通過
25、一次訪問來實現(xiàn)讀/寫功能。 然而對奇地址字的讀寫指令,CPU必須讀寫兩個連續(xù)的偶地址字,兩次訪問存儲器,每次都忽略掉不需要的半個字,并將剩下的兩個字節(jié)進(jìn)行某種形式的字節(jié)交換。,1存儲組織、存儲器分段,2)存儲器分段,8086有4 個段寄存器CS、SS、DS和ES。,取指令時,CPU會自動選擇代碼段寄存器CS,再加上由IP所決定的16位偏移量,計算出要取的指令的物理地址。,執(zhí)行堆棧操作時,CPU會自動選擇堆棧段寄存器SS,再加上由SP所決定的16位偏移量,計算出堆棧操作所需的20位物量地址。,讀寫外部數(shù)據(jù)時,CPU會自動選擇數(shù)據(jù)段寄存器DS,再加上指令所指定的地址寄存器內(nèi)的16地址偏移量。,傳送
26、數(shù)據(jù)塊時,CPU會自動選擇附加段寄存器ES,再加上目的變址寄存器DI內(nèi)的16地址偏移量作為目的地址。,1存儲組織、存儲器分段,2)存儲器分段,若某一任務(wù)的程序長度、堆棧長度以及數(shù)據(jù)區(qū)長度分別都不超過64KB,則可在程序開始時分別給CS、DS和SS置初值,然后程序中可不再考慮這些段寄存器。 若一個程序要用的數(shù)據(jù)區(qū)超過64KB,或要求從兩個(或多個)不同區(qū)域中取操作數(shù),只需在取操作數(shù)前,用指令給數(shù)據(jù)段寄存器重新賦值就可以了。,1存儲組織、存儲器分段,2)存儲器分段,每一個存儲單元具有兩種類型的地址:物理地址和邏輯地址。物理地址也就是實際地址,它具有20位的地址值,惟一標(biāo)識1MB存儲空間的某字節(jié)存儲
27、單元。CPU和存儲器之間的信息交換都是使用這個物理地址。邏輯地址是由段基地址和16位位移量組成。程序以邏輯地址編址而不是用物理地址,這不僅允許程序員在不知道代碼存放位置的情況下開發(fā)軟件,也為存儲器的動態(tài)管理創(chuàng)造了條件。,1存儲組織、存儲器分段,2)存儲器分段,對任何給定的存儲單元而言,段地址設(shè)定了該分段的起始字節(jié)單元的地址,而偏移量 是從段的起始單元到目標(biāo)單元的字節(jié)距離。存儲空間的分段并不是惟一的,它們可以互相重疊或分離。對于一個具體的存儲單元來說,它可以屬于一個邏輯段,也可以同時屬于幾個邏輯段。,1存儲組織、存儲器分段,堆棧就是一個按照后進(jìn)先出的原則組織的一段內(nèi)存區(qū)域。堆棧的組織原則需要有一
28、個地址指針SP來指示當(dāng)前數(shù)據(jù)的存放處,8086規(guī)定SP始終指向堆棧的頂部,即始終指向最后推入堆棧的數(shù)據(jù)所在的單元。,2. 堆棧,一個實際的程序常常有主程序與子程序,在主程序中往往要調(diào)用子程序或執(zhí)行中斷服務(wù)程序。堆棧的任務(wù)正是為了在調(diào)用子程序(或轉(zhuǎn)向中斷服務(wù)程序)時,把斷點及有關(guān)的寄存器、標(biāo)志位及時正確地保存下來,并保證逐次正確返回。利用堆棧指針SP可以實現(xiàn)對棧區(qū)的自動管理。,主程序調(diào)用子程序與子程序嵌套示意圖,(a)主程序轉(zhuǎn)子程序及退回示意圖 (b)子程序嵌套示意圖,2. 堆棧,此時,首先PC和PSW的內(nèi)容需要放入堆棧保護(hù),這叫保護(hù)斷點。接著,PC的內(nèi)容被置為子程序的入口地址,所以CPU轉(zhuǎn)往子
29、程序運行。,為了在返回主程序后,主程序要用到的其它寄存器的原數(shù)據(jù)不在子程序中遭受破壞,這些寄存器的內(nèi)容也要放入堆棧保護(hù),這叫保護(hù)現(xiàn)場。,遵循后進(jìn)先出的原則,首先恢復(fù)現(xiàn)場,最后恢復(fù)斷點(PC的值)。,8086的堆棧是“向下生成”的堆棧,屬于滿遞減堆棧,即隨著推入堆棧的內(nèi)容的增加,SP的值減小,也就是說,SP 所指存儲單元的地址隨著棧中數(shù)據(jù)增加而變小。SP的初值可由指令MOV SP, data來設(shè)定。棧中沒有數(shù)據(jù)時棧頂與棧底是重合的,SP總是指向棧頂,堆棧的最大容量即為SP的初值。,2. 堆棧,2. 堆棧,堆棧操作有專門的入棧指令PUSH與出棧指令POP,入棧與出棧指令的操作數(shù)是一個字,而不是一個
30、字節(jié)。 例如:若SS=1000H,SP=2000H,要把AX寄存器中的內(nèi)容壓入堆棧,用入棧指令PUSH AX。 第一步:先把SP - 1SP,然后把AH (高位字節(jié)) 送入SP所指單元(SP = 1FFFH); 第二步:再次使SP - 1SP,把AL(低位字節(jié))送至 SP所指單元(此時SP = 1FFEH)。 堆棧變化如次圖所示。,3輸入/輸出結(jié)構(gòu),8086系統(tǒng)與外部設(shè)備的接口即I/O端口。通過這些端口,8086既可以接收外部信息, 也可以把信息送往外設(shè),并可發(fā)出命令控制外部設(shè)備。 8086 CPU具有讀端口信息和寫端口信息的專用I/O指令,能夠訪問8位端口或16位 端口地址。,3輸入/輸出結(jié)
31、構(gòu),當(dāng)8086采用最小模式時,8086提供總線保持(HOLD)和總線響應(yīng)(HLDA)信號, 它們同8237等DMA控制器是相容的。DMA器件通過發(fā)出HOLD信號請求使用總線,以便在I/O設(shè)備與內(nèi)存之間直接進(jìn)行數(shù)據(jù)傳送。,3輸入/輸出結(jié)構(gòu),當(dāng)8086采用最大模式時,可以用8086和8089處理器組成最大模式系統(tǒng),大大改善了系統(tǒng)的I/O性能。8089在原理上可看成是兩個DMA通道的處理器,其指令系統(tǒng)是專門為I/O操作而設(shè)計的,8089與簡單的DMA控制器不同,它可以直接為I/O設(shè)備服務(wù),而8086不再承擔(dān)此任務(wù)。此外,8089能在本身的總線或系統(tǒng)總線上傳送數(shù)據(jù),使8位或16位的外設(shè)與8位或16位的
32、總線相匹配,并擔(dān)任從存儲器到存儲器或存儲器與I/O設(shè)備之間信息傳輸?shù)母黜椚蝿?wù)。,4總線接口部件,由于8086芯片引腳數(shù)目的限制,數(shù)據(jù)地址信號等引線是分時復(fù)用的,組成系統(tǒng)時,必須要有一些總線接口芯片將復(fù)用信號加以區(qū)分。 1)地址鎖存器 8086 CPU與存儲器或I/O設(shè)備交換信息時,先發(fā)送存儲器或I/O端口的地址,然后才傳送數(shù)據(jù)。由于地址與數(shù)據(jù)線分時復(fù)用,所以在數(shù)據(jù)占有總線之前,先由地址鎖存器將總線上的地址碼暫存起來。在讀寫總線周期內(nèi)由地址鎖存器提供地址信號。,4總線接口部件,8086系統(tǒng)常用集成芯片8282作地址鎖存器。8282內(nèi)部結(jié)構(gòu)和邏輯符號如圖所示。,4總線接口部件,2)雙向總線驅(qū)動器
33、8086系統(tǒng)中,由于地址/數(shù)據(jù)線是分時復(fù)用的,所以地址鎖存必不可少;而當(dāng)CPU進(jìn)行讀寫數(shù)據(jù)操作時,它不再發(fā)送地址,所以數(shù)據(jù)鎖存不必需。因此只有地址鎖存而沒有數(shù)據(jù)鎖存,存儲器與I/O接口電路的數(shù)據(jù)直接與CPU的數(shù)據(jù)總線相連。但在較大的系統(tǒng)中,由于使用的存儲器和I/O接口數(shù)目較多而CPU數(shù)據(jù)總線帶負(fù)載的能力有限,就需要使用總線驅(qū)動器以增加處理器帶負(fù)載的能力。,4總線接口部件,2)雙向總線驅(qū)動器 由于數(shù)據(jù)在CPU與存儲器或I/O接口之間的傳送是雙向的,所以總線驅(qū)動器也應(yīng)是雙向的,能在兩個方向上發(fā)送和接收數(shù)據(jù)的驅(qū)動器又稱總線收發(fā)器。雙向總線驅(qū)動器的芯片有很多種,常用的如8286/8287是8位雙向總線
34、驅(qū)動器。下面以8286為例,說明它與8086CPU的連接。,4總線接口部件,3)8086總線接口形態(tài),5最小模式下的系統(tǒng)配置,在此種模式下,硬件連接有如下幾個特點: MN/MX端接+5V,決定了8086工作在最小模式; 有一片8284A,作為時鐘發(fā)生器; 有三片8282或74LS373,用來作為地址鎖存器。,最 小 模 式 下 的 系 統(tǒng) 組 態(tài),5最小模式下的系統(tǒng)配置,主要的差別: 多了8288總線控制器。這是因為在最大模式系統(tǒng)中一般包含兩個或多個處理器,這樣就要解決主處理器和協(xié)處理器之間的協(xié)調(diào)工作問題和對總線的共享控制問題。一般還會有中斷優(yōu)先級管理部件8259A。,最 大 模 式 下 的
35、系 統(tǒng) 組 態(tài),3.6.5 Intel 8086的操作和時序,1系統(tǒng)的復(fù)位和啟動操作,8086的復(fù)位和啟動操作是通過向RESET引腳送入高電平的復(fù)位信號來實現(xiàn)的。8086要求復(fù)位信號RESET至少維持4個時鐘周期的高電平。如果是初次加電的系統(tǒng)復(fù)位,則要求復(fù)位信號維持50us以上時間的高電平。 一旦RESET信號有效,8086就進(jìn)入復(fù)位狀態(tài)。此時,8086各內(nèi)部寄存器都被置為確定的初始值。,表3-5 復(fù)位時Intel 8086各內(nèi)部寄存器的初始值,3.6.5 Intel 8086的操作和時序,2系統(tǒng)總線與總線操作,8086要與存儲器及外設(shè)端口交換數(shù)據(jù),需要執(zhí)行一個總線周期,這就是總線操作。 系統(tǒng)
36、總線實際上是處理器芯片引腳的延伸,是處理器與I/O設(shè)備適配器的通道。按其功能可分為三類:地址線、數(shù)據(jù)線和控制線。 按照數(shù)據(jù)傳輸方向來分,總線操作可以分為總線讀操作和總線寫操作。,3.6.5 Intel 8086的操作和時序,1)最小模式 下的總線讀操作,最基本的總線讀操作包含4個T狀態(tài),存儲器和外設(shè)速度較慢時,要在T3之后插入1個或幾個等待狀態(tài)Tw。,3.6.5 Intel 8086的操作和時序,2)最小模式下的總線寫操作,最基本的總線寫操作也包含4個T狀態(tài),存儲器和外設(shè)速度較慢時,也要在T3之后插入1個或幾個等待狀態(tài)Tw。,3.6.5 Intel 8086的操作和時序,3)最小模式下的總線保
37、持,當(dāng)一個系統(tǒng)中具有多個總線主模塊時,8086以外的其他總線主模塊為了獲得對總線的控制權(quán),需要向通過HOLD信號8086發(fā)出使用總線的請求信號,而8086得到請求之后,如果同意讓出總線,就要用HLDA向請求使用總線的主模塊發(fā)應(yīng)答信號。,3.6.5 Intel 8086的操作和時序,3)最小模式下的總線保持,8086在每個時鐘脈沖的上升沿處對HOLD引腳上的信號進(jìn)行檢測,如果檢測到HOLD處于高電平狀態(tài),并且允許讓出總線,那么在總線周期的T4狀態(tài)或者空閑狀態(tài)Ti后的下一個時鐘周期,會發(fā)出HLDA信號,從而8086便將總線讓給發(fā)出總線保持請求的設(shè)備,直到此后這個發(fā)出總線保持請求的設(shè)備又將HOLD信號變?yōu)榈碗娖剑?086才又收回總線控制權(quán)。,3.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 阿里巴巴企業(yè)培訓(xùn)制度
- 教師培訓(xùn)制度管理制度
- 培訓(xùn)學(xué)校對員工日常制度
- 農(nóng)業(yè)生產(chǎn)人員培訓(xùn)制度
- 2025貴州貴陽機場股份公司飛機地勤分公司招聘8人筆試歷年參考題庫附帶答案詳解
- 軟件工作培訓(xùn)制度及流程
- 2025秋季四川成都陸港智匯科技服務(wù)有限公司成都市青白江區(qū)區(qū)屬國有企業(yè)招聘135人筆試參考題庫附帶答案詳解(3卷)
- 如何花店人員培訓(xùn)制度
- 2025福建廈門環(huán)境保護(hù)機動車污染控制技術(shù)中心招聘27人筆試歷年參考題庫附帶答案詳解
- 2025湖南省國智云科技有限公司招聘7人筆試歷年參考題庫附帶答案詳解
- 2024年衛(wèi)生高級職稱面審答辯(呼吸內(nèi)科)(副高面審)經(jīng)典試題及答案
- 民爆銷售企業(yè)安全培訓(xùn)課件
- 水利工程招標(biāo)投標(biāo)重點難點及措施
- 幼兒園流感培訓(xùn)知識課件
- 蘄春縣國土空間總體規(guī)劃(2021-2035)
- 2025年7月19日四川省考補錄公務(wù)員面試真題及答案解析(政法崗)
- 一年級上冊語文 快樂讀書吧《和大人一起讀》必考考點知識梳理
- 保密文件流轉(zhuǎn)管理辦法
- 智能交通能源系統(tǒng):共享電動車充換電優(yōu)化策略研究
- 《老年人生活照料與基礎(chǔ)護(hù)理實務(wù)》智慧健康養(yǎng)老服務(wù)與管理專業(yè)全套教學(xué)課件
- 新建年產(chǎn)30萬噸型材生產(chǎn)線項目可行性研究報告寫作模板-備案審批
評論
0/150
提交評論