版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、8086微處理器系統(tǒng)結(jié)構(gòu)主講:王鵬偉主講:王鵬偉章節(jié):章節(jié):1 4章章學時:學時:21學時學時Email:8086 CPU結(jié)構(gòu)結(jié)構(gòu) 8086 CPU是Intel系列的,它采用HMOS工藝制造,雙列直插,有。8086 CPU的電源為單一的5V,主時鐘頻率為5MHz10MHz。它的。因為可用20位地址,所以可尋址的地址空間達1MB。 8086 CPU內(nèi)部采用了,可以提高CPU的利用率和處理速度。8086 CPU被設(shè)計為支持多處理器系統(tǒng),因此能,構(gòu)成多處理器系統(tǒng),從而提高系統(tǒng)的數(shù)據(jù)處理能力 8086處理器的結(jié)構(gòu) 控制器用來控制程序和數(shù)據(jù)的輸入/輸出,以及各部件之間的協(xié)調(diào)運行,運算器用來進行算術(shù)運算和
2、邏輯運算,并保存中間運算結(jié)果,寄存器組則用來臨時存放信息,其信息或為要處理的數(shù)據(jù),或為內(nèi)存中獲取某數(shù)據(jù)的地址。 Intel 8086的內(nèi)部結(jié)構(gòu)框圖 總線接口部件總線接口部件BIU BIU是CPU與外部存儲器及輸入輸出的接口,負責與存儲器和輸入輸出系統(tǒng)進行數(shù)據(jù)交換。 段基址表示20位,段起始地址的。IP用于存放下一條要執(zhí)行指令的用于存放下一條要執(zhí)行指令的,IP的內(nèi)容由的內(nèi)容由BIU自動修改,通常是進自動修改,通常是進行加行加1修改。當執(zhí)行轉(zhuǎn)移指令、調(diào)用指令時,修改。當執(zhí)行轉(zhuǎn)移指令、調(diào)用指令時,BIU裝入裝入IP中的是轉(zhuǎn)移目的地址。中的是轉(zhuǎn)移目的地址??偩€接口部件總線接口部件BIU 偏移地址表示離
3、段起始地址之間的距離,用字節(jié)數(shù)表示。如,表示,。 由(段寄存器的內(nèi)容)和兩部分構(gòu)成了存儲器的邏輯地址,如CS:IP=3000:2000H,CS:IP=0200:1020H等,都是邏輯地址。:加法器用于將邏輯地址變換成讀寫存儲器所需的20位物理地址,即完成地址加法操作。方法是將某一段寄存器的內(nèi)容(代表段基址)左移4位(相當乘16)再加上16位偏移地址以形成20位物理地址。:當執(zhí)行單元EU正在執(zhí)行指令中,且不需要占用總線時,BIU會自動進行預取下一條或幾條指令的操作,并按先后次序存入指令隊列中排隊,由EU按順序取來執(zhí)行。:總線控制邏輯用于產(chǎn)生并發(fā)出總線控制信號,以實現(xiàn)對存儲器和輸入輸出端口的讀寫控
4、制。 執(zhí)行部件執(zhí)行部件EU : ALU完成16位或8位的二進制數(shù)的算術(shù)邏輯運算,絕大部分指令的執(zhí)行都由ALU完成。在運算時數(shù)據(jù)先傳送至16位的暫存寄存器位的暫存寄存器中,經(jīng)ALU處理后,運算結(jié)果可通過內(nèi)部總線送入通用寄存器或由BIU存入存儲器。:它用來反映CPU最近一次運算結(jié)果的狀態(tài)特征或存放控制標志。FR為16位,其中7位未用。:它包括4個數(shù)據(jù)寄存器AX、BX、CX、DX,其中AX又稱累加器又稱累加器,4個專用寄存器,即基址指示器BP、堆棧指示器SP、源變址寄存器SI和目的變址寄存器DI。:它接收從BIU中指令隊列取來的指令,經(jīng)過指令譯碼形成各種定時控制信號,向EU內(nèi)各功能部件發(fā)送相應(yīng)的控制
5、命令,以完成每條指令所規(guī)定的操作。 BIU和和EU的動作管理的動作管理 BIU從內(nèi)存取指令,并送到指令隊列。取指令時的地址由代碼段寄存器CS中的16位段基址的最低位后補4個0,再與指令指針I(yè)P中的16位偏移地址在地址加法器中相加得到20位物理地址。然后通過,從而啟動存儲器,從存儲器中取出指令并送入指令隊列供EU執(zhí)行。 BIU和和EU的動作管理的動作管理 在EU執(zhí)行指令過程中需要取操作數(shù)或存結(jié)果時,先向BIU發(fā)出請求,并提供操作數(shù)的有效地址,BIU將根據(jù)EU的請求和提供的有效地址,從指定存儲單元或I/O端口取出操作數(shù)送交EU使用或?qū)⒔Y(jié)果存入指定的存儲單元或I/O端口。如果BIU已準備好取指令同時
6、又收到EU的申請, 當EU執(zhí)行時,BIU先自動清除指令隊列,再按EU提供的新地址取指令。BIU新取得的第一條指令將直接送到EU中去執(zhí)行。然后,BIU將隨后取得的指令重新填入指令隊列。 8086寄存器結(jié)構(gòu) 通用寄存器 數(shù)據(jù)寄存器包括AX、BX、CX、DX等4個16位寄存器,主要用來。它們既可以作為16位寄存器使用,也可以將每個寄存器高字節(jié)和低字節(jié)分開作為兩個獨立的8位寄存器使用。而8位寄存器(AL、BL、CL、DL、AH、BH、CH、DH)。 地址指針和變址寄存器組包括堆棧指針 SP、堆棧基址寄存器 指針BP以及變址寄存器 指針SI和DI等4個16位寄存器。它們主要是用來存放或指示操作數(shù)的。 堆
7、棧指針SP中存放的是當前堆棧段中棧頂?shù)钠频刂?。堆棧操作指令PUSH和POP就是從SP中得到操作數(shù)的段內(nèi)偏移地址的。BP是訪問堆棧時的基址寄存器。BP中存放的是堆棧中某一存儲單元的偏移地址,SP、BP通常和SS聯(lián)用。SI和DI稱為變址寄存器。它們通常與DS聯(lián)用,為程序訪問當前數(shù)據(jù)段提供操作數(shù)的段內(nèi)偏移地址。SI和DI除作為一般的變址寄存器外,在。由于串操作指令規(guī)定源字符串必須位于當前數(shù)據(jù)段DS中,目的串必須位于附加段ES中,所以SI和DI中的內(nèi)容分別是當前數(shù)據(jù)段和當前附加段中某一存儲單元的偏移地址。當SI、DI和BP不作指示器和變址寄存器使用時,也可將它們當作一般數(shù)據(jù)寄存器使用,存放操作數(shù)或運
8、算結(jié)果。 隱含尋址 8個16位通用寄存器在一般情況下都具有通用性。但是,為了縮短指令代碼的長度,某些通用寄存器又規(guī)定了專門的用途。 例如,在字符串處理指令中約定必須用CX作為計數(shù)器存放串的長度。這樣指令中就不必給出CX寄存器名,縮短了指令長度,簡化了指令的書寫形式,這種使用方法稱為“隱含尋址”。 8086 CPU中通用寄存器的特殊用途和隱含性質(zhì) 8086物理地址的形成 8086 CPU可直接尋址lMB的內(nèi)存空間。直接尋址時需要20位地址碼,而所有的內(nèi)部寄存器,包括段寄存器,都是16位的,用它們作地址寄存器,只能直接尋址64KB單元。因此,在8086 CPU中采用了存儲空間分段技術(shù)來解決這一矛盾
9、。將lMB的存儲空間分成若干個邏輯段,每段最大長度為64KB。這些邏輯段可在整個lMB存儲空間內(nèi)浮動,但是段的起始地址必須能被16整除。這樣對于20位的段起始地址,其低4位為0,可暫時先忽略,而只有高16位是有效數(shù)字,可存放于16位的寄存器中。在形成20位物理地址時,段寄存器中的16位數(shù)會自動左移4位,然后與16位偏移量相加 。8086物理地址的形成8086物理地址的形成 對于,是將當前中的內(nèi)容左移4位(相當乘16)再加上IP的內(nèi)容,形成20位指令地址;操作,是將當前數(shù)據(jù)段寄存器中的段基址左移4位,再與16位偏移地址EA相加,形成20位的物理地址;對于,是將當前堆棧段寄存器中的段基址左移4位,
10、再與SP相加,形成20位的物理地址;在對時,是以當前附加段寄存器中的段基址左移4位,再與DI相加以形成20位的物理地址。 8086還允許部分改變基本段約定,如的基本段為數(shù)據(jù)段,但可臨時改變?yōu)榇a段、或附加段、或堆棧段,即數(shù)據(jù)不僅可在數(shù)據(jù)段,還可在代碼段、附加段和堆棧段中。這種情況稱為。 8086的基本段約定和允許的段超越 控制寄存器控制寄存器 指令指針寄存器IP 在總線接口部件BIU中設(shè)置了一個16位的指令指針寄存器IP,其作用是用來存放將要執(zhí)行的下一條指令在現(xiàn)行代碼段中的偏移地址。在程序運行中,IP的內(nèi)容由BIU自動修改,使IP始終指向下一條將要執(zhí)行的指令地址。因此,IP實際上起著控制指令流
11、的執(zhí)行流程。 標志寄存器flags 標志寄存器flags也稱程序狀態(tài)字寄存器(簡寫為PSW),用來存放指令執(zhí)行結(jié)果特征。 8086 CPU引腳及功能 8086系統(tǒng)時鐘與指令周期 每條指令的解釋執(zhí)行過程包括和兩個步驟,CPU取一條指令并執(zhí)行這條指令,都要完成一系列的操作,這一系列操作所需要的時間通常叫做一個。由于各種指令的操作功能不同,因此各種指令的指令周期是不盡相同的。對應(yīng)指令執(zhí)行的三個階段,指令周期一般分為:取指取指周期周期、取操作數(shù)周期取操作數(shù)周期和執(zhí)行周期執(zhí)行周期三個部分。(1)取指周期)取指周期 取指周期是取出某條指令所需的時間。在取指周期中CPU主要完成兩個操作:1)按程序計數(shù)器PC
12、的內(nèi)容取指令;2)形成后繼指令的地址。 取指周期取指周期 = (指令的長度(指令的長度 / 存儲字的長度)存儲字的長度) 主存的讀主存的讀/寫周寫周期期 指令周期指令周期(2)取操作數(shù)周期)取操作數(shù)周期 取操作數(shù)周期是為執(zhí)行指令而取操作數(shù)所需的時間。取操作數(shù)周期的長短與操作數(shù)的個數(shù)有關(guān)、與操作數(shù)所處的物理位置有關(guān)還與操作數(shù)的尋址方式有關(guān)。 (3)執(zhí)行周期)執(zhí)行周期 執(zhí)行周期是完成指令所規(guī)定的操作和送結(jié)果所需的時間。它與指令規(guī)定的操作復雜程序有關(guān),還與目的操作數(shù)的物理位置和尋址方式有關(guān)。狀態(tài)信息中的條件碼在執(zhí)行周期中存入程序狀態(tài)字PSW。若該指令是轉(zhuǎn)移指令,在該周期中還要生成轉(zhuǎn)移地址。幾個周期概
13、念 指令周期常常用若干個來表示,CPU周期也稱為。由于CPU內(nèi)部的操作速度較快,而CPU訪問一次內(nèi)存所花的時間較長,因此通常。也就是說,一條指令的取出階段(通常稱為取指)需要一個CPU周期時間。而一個CPU周期時間又包含有若干個。時鐘周期是CPU的時間基準,由計算機的主時鐘脈沖決定,執(zhí)行每條指令和每個總線周期的一系列操作都是在時鐘脈沖的同步下進行的。這些時鐘周期的總和則規(guī)定了一個CPU周期的時間寬度。 在執(zhí)行指令的過程中,CPU要占用系統(tǒng)總線訪問內(nèi)存或外部設(shè)備,以便從內(nèi)存或外設(shè)接口中讀取指令或指令所需的操作數(shù)。 8086 CPU由外部的一片8284芯片提供主頻為5MHZ的時鐘信號。8284A是
14、Intel公司專為8086設(shè)計的時鐘信號發(fā)生器,能產(chǎn)生8086所需的系統(tǒng)時鐘信號(主頻),可采用石英晶體或TTL脈沖發(fā)生器作振蕩源。8284A除提供恒定時鐘信號外,還對外界輸入的就緒信號RDY和復位信號RES進行同步。 根據(jù)不同的振蕩源,8284A有兩種不同的連接方法:一種是用脈沖發(fā)生器作振蕩源脈沖發(fā)生器作振蕩源,此時,將脈沖發(fā)生器的輸出端與8284A的EFI端相連,并且8284A的 端接高電平;另一種方法是用晶體振蕩器作為振蕩源晶體振蕩器作為振蕩源,此時,將晶體振蕩器接在8284A的X1和X2兩端,并且8284A的 接低電平(地)。 時鐘及時鐘發(fā)生器 F/CF/C8086 CPU的工作模式
15、最小工作模式用于單機系統(tǒng),系統(tǒng)中所有總線控制信號全部由8086直接提供,因此系統(tǒng)中的總線控制電路可減到最少;最大工作模式用于多處理機系統(tǒng),8086 CPU作為主處理器,其它的處理器為協(xié)處理器,協(xié)助主處理器工作。 8086最小模式下的總線控制信號由CPU直接產(chǎn)生,用于總線控制的信號是HOLD(總線請求信號,輸入)、HLDA(總線響應(yīng)信號,輸出)。 8086具體工作在最大模式還是最小模式,完全由硬件連接決定。當將CPU的第33號引腳MN/ 接5V時,8086工作在最小模式,當MN/ 接地時,8086工作在最大模式。8086 CPU總線操作與時序 8086 CPU的操作可分為內(nèi)操作內(nèi)操作與外操作外操
16、作兩種,內(nèi)操作是CPU內(nèi)部執(zhí)行指令的過程,外操作是CPU與外部進行信息交換的過程,外部操作主要指的是總線操作。 8086主要的總線操作有:系統(tǒng)復位和啟動操作、總線讀/寫操作、總線保持操作或總線請求/允許操作、中斷響應(yīng)操作、暫停操作、空操作。 8086基本總線周期 8086最基本的總線周期由4個時鐘周期組成,分別用T1、T2、T3、T4表示,稱為T1、T2、T3、T4狀態(tài),T1狀態(tài),CPU輸出地址信號,T2、T3、T4狀態(tài)傳送數(shù)據(jù),如果在T2、T3、T4狀態(tài)無法完成數(shù)據(jù)傳送,就在T3與T4狀態(tài)之間插入Tw。 Tw狀態(tài)也叫等待狀態(tài)或等待周期,是CPU在讀寫存儲器或與外設(shè)交換信息時,為了與存儲器或外
17、設(shè)的速度匹配,在T3狀態(tài)之后插入的1個或多個等待周期。,此時,總線上的狀態(tài)一直不變,用于數(shù)據(jù)傳送,當CPU接到有效的READY信號后,數(shù)據(jù)傳送結(jié)束,進入T4狀態(tài)。T4狀態(tài)后,就要進入下一個總線周期的T1狀態(tài),否則,就進入空閑狀態(tài),稱為Ti狀態(tài)。8086讀總線周期 8086寫總線周期 8086總線請求與響應(yīng) 8086最小模式下的總線控制信號由CPU直接產(chǎn)生,用于總線控制的信號是HOLD(總線請求信號,輸入)、HLDA(總線響應(yīng)信號,輸出)。當系統(tǒng)中其他部件,如DMA控制器,需要占用總線時,向CPU發(fā)出總線請求信號HOLD。CPU收到有效的HOLD信號后,如果允許讓出總線,就在當前總線周期完成時,
18、發(fā)出HLDA信號,同時使地址/數(shù)據(jù)總線和控制總線處于高阻態(tài),表示讓出總線,在下一個時鐘周期,總線請求部件收到HLDA信號,獲得總線控制權(quán)。在這期間,HOLD和HLDA都保持高電平,直到總線請求部件完成對總線的占用后,使HOLD變?yōu)榈碗娖剑废偩€請求,CPU收到后,HLDA信號才變?yōu)榈碗娖?,CPU恢復對總線的控制。8086存儲器組織 存儲器地址的分段存儲器地址的分段 存儲器地址的分段 任何一個存儲單元的實際地址,都是由段地址及段內(nèi)偏移地址兩部分組成的。存儲單元可以在一個段中定義,也可以定義在兩個段的邏輯段中,關(guān)鍵是看段的首地址是如何指定的。IBM PC機對段的首地址有限制,規(guī)定必須從每小段(p
19、aragraph)的首地址開始,每16個字節(jié)為一小段,所以段起始地址必須能被16整除。物理地址的形成方法物理地址的形成方法 8086系統(tǒng)將段地址放在段寄存器中,稱“段基址”。有有4個段寄存器,分別為代碼段寄存器個段寄存器,分別為代碼段寄存器CS,數(shù)據(jù)段寄存器,數(shù)據(jù)段寄存器DS,附加段寄存器,附加段寄存器ES和堆棧段寄存器和堆棧段寄存器SS。 段內(nèi)“偏移地址”指出了從段地址開始的相對偏移位置。它可以放在指令指針寄存器IP中,或者放在16位通用寄存器中,如何從16位段地址和16位偏移地址得到20位地址,需要先說明邏輯地址和物理地址兩個概念。 邏輯地址:邏輯地址:存儲器的任一個邏輯地址是由段基址和偏
20、移地址組成的,都是無符號的16位二進制數(shù),程序設(shè)計時采用邏輯地址。 物理地址:物理地址:存儲器的絕對地址,從00000FFFFFH,是CPU訪問存儲器的實際尋址地址,是由邏輯地址變換而來的。 物理地址物理地址 = 段基址段基址 16 + 偏移地址偏移地址8086存儲器的分體結(jié)構(gòu) 8086系統(tǒng)中,1MB的存儲空間分成兩個存儲體:偶地址存儲體和奇地址存儲體,分別為512KB。8086存儲器的分體結(jié)構(gòu) 存儲器中存放的信息稱為存儲單元的內(nèi)容,例如,存儲單元00100H中的內(nèi)容為34H,表示為(00100H)= 34H。一個字在存儲器中按相鄰兩個字節(jié)存放,且存入時以低位字節(jié)在低地址,高位字節(jié)在高地址的次
21、序存放,字單元的地址以低位地址表示。一個字可以從偶地址開始存放,也可以從奇地址開始存放,第一次取奇地址上數(shù)據(jù)(忽略偶地址的8位數(shù)據(jù)),第一次取偶地址上數(shù)據(jù)(忽略奇地址的8位數(shù)據(jù)),因此為了加快程序運行速度,編程時注意從存儲器偶地址開始存放字數(shù)據(jù),這種存放方式也稱作“對準存放”。堆棧的概念 堆棧主要用于暫存數(shù)據(jù)和在過程調(diào)用或處理中斷時暫存斷點信息。段基址由SS給出,堆棧指針由SP給出,指向堆棧的棧頂。(1)堆棧的概念 堆棧是在存儲器中開辟的一片數(shù)據(jù)存儲區(qū),用來存放需要暫時保存的數(shù)據(jù)。這片存儲區(qū)的一端固定,另一端活動,且只允許數(shù)據(jù)從活動端進出。采用“先進后出”的規(guī)則。堆棧段是由段定義的一個段,它可
22、以在存儲器1MB空間內(nèi)任意浮動,但容量小于等于64KB。 堆棧的組織 堆棧段中存儲單元的地址由寄存器SS和SP確定。堆棧寄存器SS存放的是堆棧的基地址,表明堆棧所在的邏輯段;堆棧指針寄存器SP存放的是棧頂?shù)牡刂?,即始終指向最后推入堆棧的數(shù)據(jù)所作的單元。存儲單元的地址由(SS)16(SP)形成。,堆棧的伸展方向既可以從大地址向小地址,也可以從小地址向大地址。堆棧具體操作 堆棧操作以字為單位進行,而且堆棧中的數(shù)據(jù)必須按規(guī)則字存放。低字節(jié)在偶地址單元,高字節(jié)在奇地址單元。把數(shù)據(jù)推入堆棧為“壓入”;從堆棧取數(shù)據(jù)稱為“彈出”?!皦喝搿睌?shù)據(jù)的時候,先修改SP的值,即將(SP)2送SP,然后再與SS形成存儲
23、器的物理地址,將數(shù)據(jù)存入?!皬棾觥睌?shù)據(jù)的時候,先從當前SS和SP形成的物理地址上取出數(shù)據(jù),然后修改SP,即將(SP)2送SP。堆棧操作是按“后進先出”的規(guī)則進行的。8086CPU設(shè)有專用的指令執(zhí)行“壓入”和“彈出”的操作,在這些指令中,SP的修改是自動進行的。堆棧的注意點 例如:在某段子程序中需要保護BX、CX、DI的內(nèi)容 PUSH BX PUSH CX PUSH DI POP DI POP CX POP BX8086 CPU的中斷系統(tǒng) 8086 CPU有一個簡單而靈活的中斷系統(tǒng),采用向量型中斷結(jié)構(gòu),可以處理多達256個不同類型的中斷請求。CPU的中斷源有兩類,。非屏蔽NMI中斷請求信號為上升
24、沿觸發(fā),一旦該信號有效,在現(xiàn)行指令執(zhí)行完后立即中斷,執(zhí)行對應(yīng)的中斷處理程序,不需中斷響應(yīng)周期。而,如果CPU開放了中斷,在執(zhí)行完當前指令之后就進入中斷響應(yīng)周期,中斷響應(yīng)周期占用。內(nèi)部中斷(軟件中斷內(nèi)部中斷(軟件中斷 ) 溢出中斷 (向量號為4的內(nèi)部中斷) 除法出錯中斷(向量號為0的內(nèi)部中斷) 單步中斷 (向量號為1的內(nèi)部中斷) 8086沒有直接對TF置1或清0的命令,可修改存放在堆棧中標志內(nèi)容,再通過POPF指令改變TF的值 斷點中斷 (向量號為3的內(nèi)部中斷) 指令中斷(向量號為n的內(nèi)部中斷) 指令中斷是執(zhí)行INT n時,產(chǎn)生一個向量號為n的內(nèi)部中斷,為兩字節(jié)指令,INT 3除外。INT n主
25、要用于系統(tǒng)定義或用戶自定義的軟件中斷,如BIOS功能調(diào)用和DOS功能調(diào)用。外部中斷(硬件中斷)外部中斷(硬件中斷) CPU外部中斷請求信號引腳上輸入有效的中斷請求信號引起的,分為非屏蔽中斷NMI和可屏蔽中斷INTR1) 非屏蔽中斷NMI是由引起的一個。NMI用來通知CPU發(fā)生了致命性事件,如電源掉電、存儲器讀寫錯、總線奇偶位錯等。NMI是不可用軟件屏蔽的,而且是上升沿觸發(fā)的,中斷類型號預定為2,不需要中斷響應(yīng)周期。在IBM PC系列機中,NMI用于處理存儲器奇偶校驗錯、I/O通道奇偶校驗錯以及8087協(xié)處理器異常中斷等。 外部中斷(硬件中斷)外部中斷(硬件中斷)2) CPU的INTR引腳通常由
26、 PIC的信號驅(qū)動,8259A又與需要請求中斷的外設(shè)相連。在外設(shè)發(fā)出中斷請求信號時8259A根據(jù)優(yōu)先權(quán)和屏蔽狀態(tài),決定是否發(fā)出INT信號。外設(shè)的中斷請求信號必須在中斷請求信號被接受前保持有效。而CPU對INTR信號是在每條指令的最后一個時鐘周期采樣的。 接到有效的INTR信號后,CPU是否響應(yīng)該中斷請求,取決于中斷允許標志位IF的狀態(tài)。若IF=1,CPU開放中斷,則響應(yīng),否則不響應(yīng)。因此,要響應(yīng)INTR的中斷請求,CPU必須開放中斷。 8086設(shè)有對中斷標志位IF置1或清0的指令,; ??善帘沃袛嗵幚磉^程可屏蔽中斷處理過程 可屏蔽中斷處理的過程一般分為幾步:。 : 1)外設(shè)提出中斷申請;2)本
27、中斷位未被屏蔽;3)本中斷優(yōu)先級最高;4)CPU允許中斷。響應(yīng)中斷流程 當中斷接口電路中的時,外設(shè)可通過中斷接口發(fā)出中斷申請。外設(shè)發(fā)出中斷請求的時間是隨機的,而CPU在每條指令的最后一個機器周期的最后一個T狀態(tài)去采樣中斷請求輸入線INTR,當CPU在,而,則在當前指令完成后CPU響應(yīng)中斷。CPU響應(yīng)中斷后,對中斷接口電路發(fā)出 當中斷接口電路收到 以后,通過數(shù)據(jù)線向CPU送中斷類型號。INTAINTA 中斷請求 中斷判優(yōu) 中斷響應(yīng) N Y N Y 中斷處理 中斷返回 Y N 各個設(shè)備異步實時提出中斷請求 中斷控制器按判優(yōu)原則選中 當前優(yōu)先級最高的中斷請求 CPU 執(zhí)行完當前一條指令 向中斷控制器
28、輸出 INTA 表示中斷應(yīng)答 中斷控制器給 CPU 輸出選中的中斷信號 CPU 將中斷號乘 4 做為中斷向量地址 到中斷向量表獲取相應(yīng)的中斷向量 CPU 執(zhí)行中斷服務(wù)程序完成設(shè)備請求服務(wù) CPU 發(fā)中斷結(jié)束命令給中斷控制器 CPU 執(zhí)行中斷返回指令 IRET 返回到斷點現(xiàn)場,繼續(xù)執(zhí)行原程序 CPU 取下一條指令 允許中斷? 中斷有效? 自動結(jié)束? CPU 禁止中斷(置標志 IF=0)并保護 斷點現(xiàn)場(返回地址)轉(zhuǎn)向中斷服務(wù)程序 響應(yīng)中斷的四個階段響應(yīng)中斷的四個階段1、中斷請求與響應(yīng)階段、中斷請求與響應(yīng)階段CPU在每條指令執(zhí)行的最后一個機器周期采樣中斷請求信號,在執(zhí)行完當前指令后,進入是否響應(yīng)中
29、斷的判斷流程,如果是內(nèi)部中斷或NMI非屏蔽中斷,如果是INTR可屏蔽中斷,進入中斷響應(yīng)周期,。2、中斷自動處理階段、中斷自動處理階段標志寄存器FR入棧,令TEMP=TF,暫存TF的狀態(tài), IF和TF清0,CS和IP入棧,根據(jù)中斷類型號查中斷向量表,都是硬件自動完成的。3、中斷服務(wù)階段、中斷服務(wù)階段主要是執(zhí)行相應(yīng)的中斷服務(wù)程序,所做的處理視應(yīng)用場合而定,如外設(shè)的中斷服務(wù)程序,主要是傳遞信息,而軟件啟動的中斷服務(wù)程序則主要為系統(tǒng)中其它程序服務(wù)。4、中斷返回、中斷返回當執(zhí)行到IRET指令時,自動彈出IP和CS以及標志寄存器FR,返回中斷前的程序位置,執(zhí)行下一條指令。 中斷向量表 8086中斷系統(tǒng)采用
30、的是向量型中斷方式,每個中斷源都有一個為它服務(wù)的中斷服務(wù)程序。8086最多能管理,對應(yīng)類型號為0FFH,稱中斷類型號或中斷向量號,是識別中斷源的唯一標志。 每一個中斷服務(wù)程序都有一個確定的入口地址,該地址稱為中斷向量。把系統(tǒng)中所有中斷向量集中起來,按中斷類型號從小到大的順序存放到存儲器的某一區(qū)域內(nèi),這個存放中斷向量的存儲區(qū)叫做中斷向量表,亦即。中斷向量表類型0中斷入口(除法出錯)類型1中斷入口(單步中斷)類型2中斷入口(NMI)類型3中斷入口(斷點中斷)類型4中斷入口(溢出中斷)類型5中斷入口類型31中斷入口類型32中斷入口類型255中斷入口1587000000400800C01001407F
31、0803FC供用戶使用系統(tǒng)備用專用中斷IPCSIPCSIPCS中斷向量表 8086系統(tǒng)中,在存儲器的00000H003FFH地址范圍建立了一個中斷向量表,占用1K字節(jié)空間,低位字節(jié)存放在低地址,高位字節(jié)存放在高地址;存放方法與前2個單元相同。CPU響應(yīng)中斷時,從中斷向量表中查出中斷向量地址,再從該地址中取出內(nèi)容分別裝入IP和CS,從而轉(zhuǎn)去執(zhí)行相應(yīng)的中斷服務(wù)程序。 專為IBM PC機開發(fā)的基本輸入輸出系統(tǒng)BIOS中斷調(diào)用占用10H1AH共11個中斷類型號,如INT 10H為屏幕顯示調(diào)用,INT 13H為磁盤I/O調(diào)用,INT 16H為鍵盤輸入調(diào)用,INT 1AH為時鐘調(diào)用等,就是雙字節(jié)指令中斷,
32、這些中斷為用戶提供直接與I/O設(shè)備交換信息的一系列子程序。DOS中斷占用20H3FH共32個中斷類型號(其中A0BBH和30H3FH為DOS保留類型號),如DOS系統(tǒng)功能調(diào)用(INT 21H)主要用于對磁盤文件的存儲管理。中斷類型號n設(shè)置中斷向量 MOV AX,0 MOV ES,AX MOV BX,N*4 MOV AX,OFFSET RKDZ ;取中斷服務(wù)程序的偏移地址 MOV ES:WORD PTR BX,AX MOV AX,SEG RKDZ ;取中斷服務(wù)程序的段基地址 MOV ES:WORD PTR BX+2,AX RKDZ: : IRET中斷類型號n設(shè)置中斷向量 設(shè)置中斷向量:把由AL中
33、指定中斷類型號的中斷向量DS:DX,放置在中斷向量表中。 預置:AL=中斷類型號 DS:DX = 中斷服務(wù)程序入口地址 AH = 25H 執(zhí)行:INT 21H 取中斷向量 預置:AL=中斷類型號 AH = 35H 執(zhí)行:INT 21H 返回:ES:BX = 中斷服務(wù)程序入口地址利用DOS功能調(diào)用設(shè)置中斷向量和取中斷向量MOV AL, N ;取中斷向量到ES:BX中MOV AH, 35HINT 21HPUSH ES ;存原中斷向量PUSH BXMOV AX, SEG RKDZ ;設(shè)置中斷向量段地址在DSMOV DS, AXMOV DX, OFFSET RKDZ ;設(shè)置中斷向量偏移地址在DXMOV
34、 AL, N ;中斷類型號nMOV AH, 25H ;設(shè)置中斷向量INT 21HPOP DX ;恢復原中斷向量POP DSMOV AL, NMOV AH, 25HINT 21HRETRKDZ: : ;中斷服務(wù)子程序 : IRET 中斷類型號的獲取中斷類型號的獲取 矢量中斷中,中斷入口地址與中斷類型號有關(guān),那么中斷類型號如何獲取呢? (1) 對于除法出錯,單步中斷,不可屏蔽中斷NMI,斷點中斷和溢出中斷,CPU分別自動提供中斷類型號04。 (2) 對于用戶自己確定的軟件中斷INT n,類型號由n決定。 (3) 對外部可屏蔽中斷INTR,可用硬件電路(例如,通用并行接口芯片8212)設(shè)計產(chǎn)生中斷類
35、型號 (4) 對外部可屏蔽中斷INTR,可用可編程中斷控制器8259A獲得中斷類型號。中斷服務(wù)子程序 程序開始必須保護中斷現(xiàn)場,可以通過一系列PUSH指令將CPU各寄存器的值入棧保護; 若允許中斷嵌套,則用STI指令來設(shè)置開中斷,使中斷允許標志IF=1; 執(zhí)行中斷處理程序; 用CLI指令來設(shè)置關(guān)中斷,使中斷允許標志IF=0,禁止其他中斷請求進入; 給中斷命令寄存器送中斷結(jié)束命令EOI,使當前正在處理的中斷請求標志位被清除,否則同級中斷或低級中斷的請求仍會被屏蔽掉; 恢復中斷時的現(xiàn)場,通過一系列POP指令將CPU各寄存器的值恢復; 用中斷返回指令I(lǐng)RET返回主程序,此時堆棧中保存的斷點值和標志值
36、分別裝入IP、CS和flags。存儲器 存儲器是計算機實現(xiàn)記憶功能的核心部件,它用于存放待加工的原始數(shù)據(jù)和中間計算結(jié)果以及系統(tǒng)或用戶程序等。計算機的存儲器分為兩類: 用于存儲當前與CPU頻繁交換的信息,其工作速度快,但容量較小; 用于存儲CPU暫不處理的信息,其容量很大,故稱為海量存儲器。外存要配置專門的接口和驅(qū)動設(shè)備才能實現(xiàn)訪問,存取速度也較內(nèi)存慢得多。當其信息需要處理時,要先調(diào)入內(nèi)存,再由CPU處理。存儲器 內(nèi)部存儲器,也稱為內(nèi)存,是主存儲器,位于計算機主機的內(nèi)部,用來存放系統(tǒng)軟件和當前正在使用的或者經(jīng)常使用的程序和數(shù)據(jù),內(nèi)存的容量大小受到地址總線位數(shù)的限制,例如8086 CPU有20條地址總線,可尋址空間為1MB。存儲器組織與I/O結(jié)構(gòu) 1、芯片地址線的連接、芯片地址線的連接 存儲芯片的地址線通常與系統(tǒng)的低位地址總線相連。尋址時,這部分地址的譯碼是在存儲芯片內(nèi)部完成的,稱為片內(nèi)譯碼。設(shè)某存儲器有N條地址線,該芯片被選中時。其地址線得到N位
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度別墅區(qū)兒童游樂場安全與運營合同3篇
- 二零二五年度特種設(shè)備租賃與操作培訓協(xié)議2篇
- 2024版標準貨物運輸合同書
- 2025年度森林撫育與林業(yè)資源調(diào)查合同2篇
- 2024版事業(yè)單位要就業(yè)協(xié)議書
- 二零二五年度無形資產(chǎn)轉(zhuǎn)讓不辦理過戶的協(xié)議范本3篇
- 影視劇制作發(fā)行合作合同
- 二零二五年度房地產(chǎn)企業(yè)財務(wù)顧問與投資咨詢服務(wù)協(xié)議3篇
- 2025年度股權(quán)激勵合同:科技公司員工股權(quán)激勵計劃協(xié)議3篇
- 二零二五年度智能交通基礎(chǔ)設(shè)施招投標合同3篇
- 人教版八年級上冊生物期末必刷15道識圖題
- 任務(wù)13-1 火腿腸的加工
- SY-T 6966-2023 輸油氣管道工程安全儀表系統(tǒng)設(shè)計規(guī)范
- 學生公寓管理員培訓
- 固體廢棄物循環(huán)利用項目風險管理方案
- 2024年中國電建集團新能源開發(fā)有限責任公司招聘筆試參考題庫含答案解析
- 《中小學消防安全教育:森林防火》課件模板
- 會計師事務(wù)所審計專項方案
- 地方蠶絲被質(zhì)量整改方案
- 2024年北京社會管理職業(yè)學院高職單招(英語/數(shù)學/語文)筆試歷年參考題庫含答案解析
- 腦出血病人的護理
評論
0/150
提交評論