版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、陳俊周微機原理與接口技術(shù)第二章、8086微處理技術(shù)2第2章 80 x86微處理器2.1 8086編程結(jié)構(gòu)2.2 8086工作模式和引腳功能2.3 80862.3 8086的操作和時序的操作和時序2.4 80862.4 8086的存儲器及的存儲器及I/OI/O組織組織32.3 8086的操作和時序2.3.1 8086CPU總線周期2.3.2系統(tǒng)的復位和啟動2.3.3 最小模式下總線讀操作2.3.4 最小模式下總線寫操作2.3.5 中斷操作42.3.1 8086CPU總線周期時鐘周期(Clock Cycle):概念:計算機在時鐘脈沖CLK的控制下,一個節(jié)拍一個節(jié)拍的工作。將每相鄰兩個時鐘脈沖上升沿
2、之間的時間間隔稱為T狀態(tài),也稱為時鐘周期。計算:時鐘周期=1/時鐘頻率 時鐘頻率主頻如:PC/XT中時鐘頻率為4.77MHz,求其時鐘周期?時鐘周期 =1/4.77*106 = 210*10-9 s =210ns說明:1秒(s)=103毫秒(ms)=106微秒(s)=109納秒(ns)T T5總線周期(Bus Cycle):概念:CPU從存儲器或I/O端口,存取一個字節(jié)所要花費的時間稱為一個總線周期。計算:一個總線周期通常包含幾個時鐘周期。如8086/8088中每個總線周期通常包含4個時鐘周期(稱為T1、T2、T3、T4。根據(jù)存儲器或I/O端口速度,可在T3、T4之間插入若干個等待狀態(tài)TW)。
3、6指令周期(Instruction Cycle)概念:執(zhí)行一條指令所需要的時間稱為指令周期說明:由于每條指令不等長,因此不同指令的指令周期也不等長。但它們?nèi)匀皇怯梢韵乱恍┗镜目偩€周期組成的:(1)存儲器讀或?qū)?;?)I/O的讀或?qū)?;?)中斷響應(yīng)一條指令的指令周期包含一個或多個總線周期。每條指令都有固定時序。72.3.2系統(tǒng)的復位和啟動8086/8088的復位和啟動操作是通過RESET引腿上的觸發(fā)信號來執(zhí)行的。 初次加電引起的復位(啟動),要求維持不小于50s的高電平;運行中的復位,要求RESET信號起碼維持4個時鐘周期的高電平,只要RESET信號停留在高電平狀態(tài),CPU就維持在復位狀態(tài)。在
4、復位狀態(tài),CPU各內(nèi)部寄存器都被設(shè)為初值。標志寄存器標志寄存器 清零清零 指令指針(指令指針(IP) 0000HCS寄存器寄存器 FFFFHDS寄存器寄存器 0000HES寄存器寄存器 0000HSS寄存器寄存器 0000H指令隊列指令隊列 空空其他寄存器其他寄存器 0000H88086/8088復位后的狀態(tài)重新啟動時,8086從內(nèi)存0FFFF0H處開始執(zhí)行指令。因此,一般在0FFFF0H處存放一條無條件轉(zhuǎn)移指令,轉(zhuǎn)移到系統(tǒng)程序的入口處。 所有三態(tài)輸出總線變?yōu)楦咦锠顟B(tài),這些三態(tài)總線包括:AD15AD0, A19/S6A16/S3, BHE/S7, S2(M/IO), S1(DT/R), S0(
5、DEN), LOCK(WR), RD, INTA等。ALE, HLDA, QS0, QS1等信號降為低電平,RQ/GT0, RQ/GT1等信號上升為高電平。8086/8088復位時序9圖2-10 8086的復位時序內(nèi)部內(nèi)部RESETRESETRESETRESET輸入輸入CLKCLK三態(tài)門三態(tài)門輸出信號輸出信號浮空浮空不作用狀態(tài)不作用狀態(tài)102.3.3 最小模式下總線讀操作從存儲器或I/O端口讀取數(shù)據(jù)的時序:(1)T1狀態(tài)首先要用信號 指出CPU是從內(nèi)存還是I/O端口讀,該信號在T1狀態(tài)有效(見),并一直保持到整個總線周期的結(jié)束即T4狀態(tài)。20位地址信號通過多路復用總線輸出,高4位通過A19/S
6、6A16/S3送出,低16位由AD15AD0送出(見)M/IO11如果讀奇地址,則 信號也在T1狀態(tài)送出(見),表示高8位數(shù)據(jù)總線上的信息可以使用,該信號常作為奇地址存儲體的體選信號,偶地址存儲體的體選信號為最低位地址A0。ALE輸出正脈沖作為地址鎖存信號(見)。在ALE的下降沿之前,地址信號均已有效。利用ALE的下降沿將地址鎖存到鎖存器8282(或74LS373)中。當系統(tǒng)中接有數(shù)據(jù)總線收發(fā)器時,數(shù)據(jù)傳輸方向的控制信號 輸出低電平,表示本總線周期為讀周期。(見) BHEDT/R12(2)T2狀態(tài)在T2狀態(tài),地址信號消失(見),AD15AD0進入高阻狀態(tài),以便為讀入數(shù)據(jù)作準備;而A19/S6A
7、16/S3上輸出狀態(tài)信息S7S3(見、)。 讀信號輸出,送到系統(tǒng)中所有的存儲器和I/O接口芯片,只有被地址信號選中的存儲單元或I/O端口,才會被信號從中讀出數(shù)據(jù),而將數(shù)據(jù)送到系統(tǒng)的數(shù)據(jù)總線上(見) 。 信號在T2狀態(tài)變?yōu)榈碗娖剑ㄒ姡?,從而使系統(tǒng)中總線收發(fā)器,獲得數(shù)據(jù)允許信號。RDDEN13(3)T3狀態(tài)內(nèi)存單元或者I/O端口將數(shù)據(jù)送到數(shù)據(jù)總線上,CPU通過AD15AD0準備接收數(shù)據(jù)(見11)。(4)TW狀態(tài) CPU在T3狀態(tài)的前沿(時鐘下降沿)對READY信號進行采樣。如果采樣到READY信號為低電平,則在T3和T4之間插入1個等待狀態(tài)TW。在每個TW的前沿處對READY信號繼續(xù)采樣,直到接收
8、到高電平的READY信號后,進入T4狀態(tài)。 (5)T4狀態(tài)在T4狀態(tài)和前一個狀態(tài)交界的下降沿處,CPU對數(shù)據(jù)總線進行采樣,從而獲得數(shù)據(jù)(見12) 。14圖圖2-11 2-11 80868086讀周期時序讀周期時序T T1 1T T2 2T T3 3T T4 4T TW W(1(1n)n)CLKCLKADAD1515ADAD0 0ALEALE 高為讀內(nèi)存高為讀內(nèi)存 低為讀低為讀 I/OI/OM/IOM/IORDRDDT/RDT/RDENDENA A1919/S/S6 6A A1616/S/S3 31111 數(shù)數(shù) 據(jù)據(jù) 輸輸 入入地址輸出地址輸出地址輸出地址輸出BHE/SBHE/S7 7 狀態(tài)輸出
9、狀態(tài)輸出BHEBHE輸出輸出121215例: CPU 執(zhí)行指令MOV AX, 100H 取操作數(shù)時序過程(1)T1周期: :輸出高電平指明源數(shù)據(jù)取自存儲器A0A19: 提供DS:100H 生成20 位存儲器地址,其中A0 提供偶存儲體的選擇信號 :提供奇存儲體的選擇信號ALE :輸出高電平為外部地址鎖存器8282 提供A0A19 及BHE 的鎖存信號 : 輸出低電平以使數(shù)據(jù)收發(fā)器數(shù)據(jù)傳送方向為由外部數(shù)據(jù)線到CPUBHEBHEM/IOM/IODT/RDT/R16(2)T2周期A0A15: 高阻狀態(tài),準備接收數(shù)據(jù)S3S6: 復用A16A19 提供CPU 內(nèi)部狀態(tài) :輸出低電平,發(fā)出讀數(shù)據(jù)控制信號
10、:輸出低電平,使數(shù)據(jù)收發(fā)器8286輸出端輸出數(shù)據(jù),總線的數(shù)據(jù)到達CPU 數(shù)據(jù)引腳(3)T3周期READY:由存儲器或外設(shè)決定其狀態(tài),如果READY =低電平,CPU 將插入等待周期直到READY = 高電平D0D15:有效數(shù)據(jù)到達CPU引腳(4)T4周期CPU 讀取D0D15 引腳數(shù)據(jù),并送入AX中。撤消 、 等信號,地址數(shù)據(jù)線變?yōu)楦咦锠顟B(tài)。RDRDDENDENRDRDDENDEN17圖圖 最小工作模式讀操作,各信最小工作模式讀操作,各信號對應(yīng)動作號對應(yīng)動作STBSTB地址鎖存器地址鎖存器82828282(三片)(三片)5V5VBHEBHEREADYREADYRESETRESET8284A82
11、84A收發(fā)器收發(fā)器82868286OE (OE (二片二片) )T (T (可選可選) )CLK CLK RESETRESETREADYREADYMN/MXMN/MXALEALEBHEBHEA A1919A A1616ADAD1515ADAD0 080868086DENDENDT/RDT/RM/IOM/IOWRWRRDRDINTRINTRINTAINTA存儲器存儲器I/OI/O端口端口控制總線控制總線數(shù)據(jù)總線數(shù)據(jù)總線 D15D8D15D8數(shù)據(jù)總線數(shù)據(jù)總線 D7D0D7D0地址總線地址總線 A19A0A19A0A15A0A15A0A19A0A19A0182.3.4 最小模式下總線寫操作向存儲器或
12、I/O端口寫入數(shù)據(jù)的時序: (1)T1狀態(tài)首先要用信號 指出CPU是寫內(nèi)存還是寫I/O端口,該信號在T1狀態(tài)有效(見),并一直保持到整個總線周期的結(jié)束即T4狀態(tài)。20位地址信號通過多路復用總線輸出,高4位通過A19/S6A16/S3送出,低16位由AD15AD0送出(見)IO/M19如果寫奇地址,則 信號也在T1狀態(tài)送出(見),表示高8位數(shù)據(jù)總線上的信息可以使用,該信號常作為奇地址存儲體的體選信號,偶地址存儲體的體選信號為最低位地址A0。 ALE 輸出正脈沖作為地址鎖存信號(見)。在ALE的下降沿之前,地址信號均已有效。利用ALE的下降沿將地址鎖存到鎖存器8282(或74LS373)中。當系統(tǒng)
13、中接有數(shù)據(jù)總線收發(fā)器時,數(shù)據(jù)傳輸方向的控制信號 輸出高電平,表示本總線周期為寫周期。(見) BHER/DT20(2)T2狀態(tài)在T2狀態(tài),地址信號消失,CPU立即往AD15AD0發(fā)出數(shù)據(jù)(見),數(shù)據(jù)信息會一直保持到T4狀態(tài)的中間 ;而A19/S6A16/S3上輸出狀態(tài)信息S7S3(見、)。 寫信號輸出,送到系統(tǒng)中所有的存儲器和I/O接口芯片,只有被地址信號選中的存儲單元或I/O端口,才會被寫入數(shù)據(jù)(見) 。 信號在T2狀態(tài)變?yōu)榈碗娖剑ㄒ姡?,從而使系統(tǒng)中總線收發(fā)器,獲得數(shù)據(jù)允許信號。WRDEN21(3)T3狀態(tài)CPU繼續(xù)提供狀態(tài)信息和數(shù)據(jù),并且繼續(xù)維持 、 及 、 信號為有效電平。(4)TW狀態(tài)C
14、PU在T3狀態(tài)的前沿對READY信號進行采樣。如果READY信號為低電平,則在T3和T4之間插入1個等待狀態(tài)TW,數(shù)據(jù)總線上仍保持要寫入的數(shù)據(jù)。在每個TW的前沿對READY信號繼續(xù)采樣,直到接收到高電平的READY信號后,進入T4狀態(tài)。(5)T4狀態(tài)CPU認為存儲器或I/O端口已經(jīng)完成數(shù)據(jù)的寫入,數(shù)據(jù)從數(shù)據(jù)總線上撤除,各控制信號線和狀態(tài)信號線進入無效狀態(tài),總線收發(fā)器不再工作。WRDENIO/M22圖圖2-12 2-12 80868086寫周期寫周期時序時序T T1 1T T2 2T T3 3T T4 4T TW WCLKCLK地址輸出地址輸出數(shù)數(shù) 據(jù)據(jù) 輸輸 出出ADAD1515ADAD0 0
15、ALEALE 高為寫內(nèi)存高為寫內(nèi)存 低為寫低為寫 I/OI/OM/IOM/IOWRWRDT/RDT/RDENDENA A1919/S/S6 6A A1616/S/S3 3地址輸出地址輸出 狀態(tài)輸出狀態(tài)輸出BHE/SBHE/S7 7BHEBHE輸出輸出232.3.5 中斷操作1. 概念當系統(tǒng)運行或者程序運行期間,在遇到某些緊急事件時,需要計算機暫停正在執(zhí)行的程序,自動轉(zhuǎn)去執(zhí)行處理緊急事件的子程序,當緊急事件處理完畢后,恢復原來的狀態(tài),再繼續(xù)執(zhí)行原來的程序。這種對緊急事件的處理模式,稱為中斷。中斷源和中斷類型號:引起中斷的事件稱為中斷源。中斷源一般有多個(IBM-PC可有256個),為區(qū)分各個中斷
16、源,給每個中斷源一個二進制編號,該編號稱為該中斷源的中斷類型號。中斷處理程序:處理緊急事件的子程序。242. 中斷向量CPU接收到某個中斷時,要自動轉(zhuǎn)到相應(yīng)的中斷處理程序中執(zhí)行,必須要知道該中斷源對應(yīng)的中斷處理程序在內(nèi)存中的位置(該中斷處理程序事先必須編制好),勢必要查找該中斷源對應(yīng)的中斷向量。中斷向量:中斷處理程序在內(nèi)存中的入口地址。每個中斷向量占4個字節(jié)(前2個字節(jié)存放偏移量,后2個字節(jié)存放段地址),一般存放在存儲器的低地址區(qū)(0段03FFH內(nèi)存區(qū))。中斷向量入口地址與中斷類型號之間的關(guān)系: 中斷向量入口地址4中斷類型號中斷向量表:把各個中斷所對應(yīng)的中斷向量按照一定順序排列成一個地址表,稱
17、為中斷向量表;這些地址指明了各個中斷處理子程序在內(nèi)存中的位置。258086中斷向量表位于內(nèi)存0段的03FFH,最多可容納256個中斷向量。04:為專用中斷指針,用戶不能對其修改。531:為保留中斷指針,這是Intel公司保留的中斷指針,用戶不應(yīng)使用。32255:為用戶使用的中斷指針,它可由用戶指定。003003FFHFFH003003FCHFCH00080H00080H0007CH0007CH00014H00014H00012H00012H0000CH0000CH00008H00008H00004H00004H00000H00000H用戶可用用戶可用中斷向量中斷向量(224(224個)個)16
18、16 位位段地址段地址偏移量偏移量255255號向量號向量3232號向量號向量3131號向量號向量5 5號向量號向量4 4號向量號向量 ( (溢出溢出) )3 3號向量號向量2 2號向量(非屏蔽)號向量(非屏蔽)1 1號向量(單步)號向量(單步)0 0號向量(除法錯)號向量(除法錯)系統(tǒng)保留系統(tǒng)保留中斷向量中斷向量(27(27個)個)專用專用中斷向量中斷向量(5(5個)個)26取中斷向量取中斷向量中斷處理程序中斷處理程序得到中斷號得到中斷號向量地址向量地址= =4AH4AH 4 4=128H=128H類型類型49H49H中斷向量中斷向量類型類型4BH4BH中斷向量中斷向量0:120:124 4
19、:125:125:126:126:127:127:128:128:129:129:12A:12A:12B:12B:12C:12C:12D:12D:12E:12E:12F:12F18051805F000F000IPIPCSCSSTISTIPUSH DSPUSH DSIRETIRET0F000:18050F000:1805轉(zhuǎn)入轉(zhuǎn)入中斷中斷處理處理程序程序中斷返回中斷返回CPUCPU對中斷對中斷的處理過程的處理過程050518180000F0F0中斷源中斷源4AH4AH273. 中斷類型8086中斷系統(tǒng),可以處理256種不同的中斷,對應(yīng)中斷類型碼為0255。這256種中斷可分為兩大類:硬件中斷(外部
20、中斷)軟件中斷(內(nèi)部中斷)硬件中斷是通過外部的硬件產(chǎn)生的,分為:不可屏蔽中斷(NMI)可屏蔽中斷(INTR)28不可屏蔽中斷(NMI)中斷請求通過NMI引腿進入CPU。整個系統(tǒng)中只有1個不可屏蔽中斷(中斷類型號為2),無需外部送入中斷類型號。無中斷響應(yīng)周期。不受中斷允許標志IF的屏蔽,即不受IF的影響。NMI由01后要維持至少4個連續(xù)的CPU時鐘周期的高電平,否則不能被識別;NMI由10后要維持至少4個連續(xù)的CPU時鐘周期的低電平,否則新的NMI請求不能被識別。當NMI引腿上出現(xiàn)中斷請求時,不管CPU當前正在做什么事情,都會響應(yīng)這個中斷請求而進入對應(yīng)的中斷處理程序。在實際系統(tǒng)中,不可屏蔽中斷一
21、般用來處理系統(tǒng)重大故障,如系統(tǒng)掉電處理。29可屏蔽中斷(INTR)中斷請求通過INTR引腿進入CPU,中斷響應(yīng)由INTA引腳輸出,中斷類型號由外部送入CPU。受中斷允許標志IF影響:只有當IF=1時,可屏蔽中斷才能進入;當IF=0,可屏蔽中斷受到禁止。IF可由程序設(shè)置(STI置IF=1,CLI置IF=0)。當CPU正在處理某個中斷時,如果外部又有級別更高的中斷請求,則可以實現(xiàn)中斷的嵌套。CPU一般只能響應(yīng)1個INTR,若需要響應(yīng)多個INTR,需外加中斷控制器(如8259)。中斷控制器是具體執(zhí)行優(yōu)先級管理和排隊的部件。當8086/8088系統(tǒng)中使用中斷控制器時,可以允許外部有多達幾十個中斷源。3
22、0軟件中斷(如: INT 21H)軟件中斷是CPU根據(jù)軟件中的某條指令,或?qū)酥炯拇嫫髦心硞€標志(TF)的設(shè)置而產(chǎn)生的。中斷類型號由指令直接或間接提供,不執(zhí)行中斷響應(yīng)總線周期。軟件中斷完全和硬件電路無關(guān)。典型的軟件中斷是除數(shù)為0引起的中斷和中斷指令引起的中斷。軟件中斷的特點:是指令中指定的,或隱含的,或是預(yù)定的。除單步中斷外,其他內(nèi)部中斷的優(yōu)先級都比外部中斷的要高且不能被IF屏蔽;單步中斷的優(yōu)先級是所有中斷里最低的(TF=0時屏蔽中斷,TF=1時開中斷)。31 圖215 8086/8088的中斷分類中中 斷斷 邏邏 輯輯INT INT n n 指令指令單步單步中斷中斷INTINT0 0指令指令
23、除數(shù)為除數(shù)為0 0中斷中斷INT3INT3指令指令可屏蔽中斷請求可屏蔽中斷請求非屏蔽中斷請求非屏蔽中斷請求NMINMI中中斷斷控控制制器器(8259A8259A)INTRINTR硬件中斷硬件中斷軟件中斷軟件中斷8086/8088 CPU8086/8088 CPUINTAINTA32結(jié)束當前指令結(jié)束當前指令I(lǐng)F=1IF=1?取中斷類型碼取中斷類型碼執(zhí)行下一條指令執(zhí)行下一條指令保護現(xiàn)場保護現(xiàn)場返回斷點返回斷點進入中斷處理程序進入中斷處理程序恢復現(xiàn)場恢復現(xiàn)場是是響應(yīng)響應(yīng)中斷中斷是是是是是是是是否否否否否否否否是內(nèi)部中斷?是內(nèi)部中斷?是非屏蔽中斷?是非屏蔽中斷?是可屏蔽中斷?是可屏蔽中斷?TF=1TF
24、=1?8086/8088對中斷的響應(yīng)有有無無有有NMINMI嗎?嗎?執(zhí)行中斷處理程序執(zhí)行中斷處理程序33中斷優(yōu)先級順序中斷源中斷源優(yōu)先級優(yōu)先級除法錯、除法錯、INT nINT n,INT OINT O最高最高NMINMIINTRINTR單步(陷阱)單步(陷阱)最低最低344. 硬件中斷過程及時序(1)可屏蔽中斷的響應(yīng)過程當CPU在INTR引腿上接收到一個高電平的中斷請求信號,并且IF=1時,CPU就會在當前指令執(zhí)行完以后,開始響應(yīng)外部的中斷請求。CPU往引腿 上發(fā)兩個負脈沖,外設(shè)接口接到第二個負脈沖以后,立即往數(shù)據(jù)線上(D7D0)給CPU送來中斷類型碼。INTAINTA35(2)8086中斷響
25、應(yīng)的總線周期圖圖2-16 80862-16 8086的中斷響應(yīng)總線周期的中斷響應(yīng)總線周期 T T1 1T T2 2T T3 3T T4 4中斷類型中斷類型ADAD7 7ADAD0 0三個空閑狀態(tài)三個空閑狀態(tài)T T1 1T T2 2T T3 3T T4 4T TI IT TI IT TI ICLKCLKALEALEINTAINTA368086的中斷響應(yīng)要用兩個總線周期:在兩個總線周期中,CPU從引腿 上往外設(shè)接口發(fā)2個負脈沖。外設(shè)接口(中斷控制器)收到第二個負脈沖以后,立即把中斷類型碼送到數(shù)據(jù)總線的低8位D7D0上,傳輸給CPU。中斷響應(yīng)的第一個總線周期用來通知發(fā)中斷請求的設(shè)備,CPU準備響應(yīng)中
26、斷,現(xiàn)在應(yīng)該準備好中斷類型碼;在第二個總線響應(yīng)周期中,CPU接收外設(shè)接口發(fā)來的中斷類型碼,以便據(jù)此得到中斷處理子程序的入口地址。INTA37中斷類型碼必須通過16位數(shù)據(jù)總線的低8位傳送給8086,所以提供中斷向量的外設(shè)接口(中斷控制器)必須接在數(shù)據(jù)總線的低8位上。只有在8086工作于最小模式時,才從引腿上發(fā)中斷響應(yīng)脈沖 ;如果工作在最大模式,則通過總線控制器從 組合出中斷響應(yīng)脈沖送給外設(shè)接口。 8086在兩個中斷響應(yīng)周期之間可以插入23個空閑狀態(tài)。而8088系統(tǒng)則不插入空閑狀態(tài)。INTA321SSS、38(2)CPU在響應(yīng)外部中斷過程中,要完成的工作:1)從數(shù)據(jù)總線上讀取中斷類型碼,將其存入內(nèi)
27、部暫存器。(2個中斷響應(yīng)總線周期)2)將標志寄存器的值推入堆棧(保護現(xiàn)場)。(1個總線寫周期:將標志寄存器壓入堆棧)3)把標志寄存器的中斷允許標志IF和單步標志TF清零。將IF清零是為了能夠在中斷響應(yīng)過程中暫時屏蔽外部其他中斷,以免還沒有完成對當前中斷的響應(yīng)過程而又被另一個中斷請求所打斷;清除TF是為了避免CPU以單步方式執(zhí)行中斷處理子程序。 394)將斷點保護到堆棧中。斷點指響應(yīng)中斷時,主程序中當前指令下面的一條指令的地址,包括代碼段寄存器CS的值和指令指針I(yè)P的值。(2個總線寫周期:主程序CS, IP壓入堆棧)5)根據(jù)中斷類型碼,到內(nèi)存0000段的中斷向量表中找到中斷向量,再根據(jù)中斷向量轉(zhuǎn)
28、入相應(yīng)的中斷處理子程序。(2個總線讀周期:讀中斷向量到IP和CS)40(3)非屏蔽中斷NMI的響應(yīng)過程響應(yīng)NMI請求與響應(yīng)INTR請求時的動作基本相同,差別僅在于不從外部設(shè)備讀取中斷類型碼。(對軟件中斷,中斷類型碼包含在指令中,因而也不需從外部讀取中斷類型碼)NMI對應(yīng)中斷類型為2,CPU直接從中斷向量表中讀取00000008H、0009H、000AH、000BH這4個單元內(nèi)對應(yīng)的中斷向量。412.4 8086的存儲器及I/O組織2.4.1 8086的存儲器地址8086 CPU有20條地址線,存儲器地址的編址范圍是00000HFFFFFH,共1M(220)字節(jié)的存儲空間。8086內(nèi)部的寄存器都
29、是16位的,無法直接對1M的內(nèi)存空間進行尋址,因而對內(nèi)存空間引入了分段的概念 。存儲單元地址表示方式:邏輯地址(相對地址):由段地址和段內(nèi)偏移量兩部分構(gòu)成(xxxx:xxxxH);段地址存放在段寄存器(CS、DS、SS、ES)中,偏移量由IP、SP、BP、SI、DI、BX等寄存器提供。物理地址(絕對地址):xxxxxH(5個16進制位)42CS,DS,SS和ES,這四個段寄存器存放了CPU當前可以尋址的四個段的基址??梢詮倪@四個段寄存器規(guī)定的邏輯段中存取指令代碼和數(shù)據(jù)。代碼段代碼段數(shù)據(jù)段數(shù)據(jù)段堆棧段堆棧段擴展段擴展段CSCS04000400DSDS28002800SSSSA000A000ESE
30、SAC00AC0000000H00000H04000H04000H13FFFH13FFFH28000H28000H37FFFH37FFFHA0000HA0000HAC000HAC000HAFFFFHAFFFFHBBFFFHBBFFFHFFFFFHFFFFFH64K64K64K64K64K64K64K64K低地址低地址高地址高地址00000000:00000000字節(jié)字節(jié)43存儲單元的物理地址:將段寄存器的內(nèi)容左移4個2進制位(相當于乘十進制數(shù)16),得到一個20位的值,然后加上16位的段內(nèi)偏移量。由邏輯地址得到物理地址計算公式:物理地址段地址16段內(nèi)偏移量例: CS = 3000H, IP=
31、2000H, 物理地址32000H同一物理地址可以由不同的段地址和偏移量表示。段地址的引入,為程序在內(nèi)存中浮動創(chuàng)造了條件。因為一般用戶程序只涉及偏移地址,段地址的程序裝入內(nèi)存可由操作系統(tǒng)動態(tài)分配。44 段寄存器值段寄存器值1616位位段內(nèi)偏移值段內(nèi)偏移值1616位位4 4位位+ +物理地址物理地址2020位位IPIPCSCSSISI 、 DIDI或或BXBXDSDSSPSP或或BPBPSSSS代碼段代碼段數(shù)據(jù)段數(shù)據(jù)段堆棧段堆棧段存儲器存儲器存儲器物理地址的計算方法段寄存器與其他寄存器組合指向存儲單元示意圖452.4.2 8086的存儲器結(jié)構(gòu)8086系統(tǒng)中將1MB存儲空間分成兩個512KB的存儲
32、體。一個存儲體中包含偶數(shù)地址,另一個存儲體中包含奇數(shù)地址。偶地址偶地址存儲體存儲體512K512K8 8A0=0A0=0奇地址奇地址存儲體存儲體512K512K8 8A0=1A0=10000000000000020000200001000010000300003FFFFEFFFFEFFFFFFFFFF圖2-19 存儲體地址空間分配46用A0、BHE來區(qū)分兩個存儲體。對任何一個存儲體的訪問只需要19位地址碼(A19A1) BHE和A0的意義操作操作BHEA0使用的數(shù)據(jù)線使用的數(shù)據(jù)線傳送偶地址的一個字節(jié)傳送偶地址的一個字節(jié)10AD7AD0傳送奇地址的一個字節(jié)傳送奇地址的一個字節(jié)01AD15AD8存
33、取規(guī)則字存取規(guī)則字 (從偶地址開始從偶地址開始)00AD15AD0存取不規(guī)則字存取不規(guī)則字(從奇地址開始)(從奇地址開始)01AD15AD8(第第1個總線周期個總線周期)10AD7AD0(第第2個總線周期個總線周期)47圖2-20 存儲體與總線的連接D D7 7 D D0 0奇地址存儲體奇地址存儲體SEL ASEL A1818 A A1 1D D7 7 D D0 0偶地址存儲體偶地址存儲體SEL ASEL A1818 A A1 1BHEBHED D1515 D D8 8D D7 7 D D0 0數(shù)據(jù)總線數(shù)據(jù)總線 DBDB7070數(shù)據(jù)總線數(shù)據(jù)總線 DBDB158158A A0 0A A1919
34、A A1 1地址總線地址總線48圖2-21 CPU往存儲器寫入1個字節(jié)或1個字的示意圖80868086存儲器存儲器較低地址較低地址偶地址偶地址奇地址奇地址較高地址較高地址(a a)向偶地址寫)向偶地址寫1 1個字節(jié)個字節(jié)80868086較低地址較低地址偶地址偶地址奇地址奇地址較高地址較高地址(b b)向奇地址寫向奇地址寫1 1個字節(jié)個字節(jié)80868086較低地址較低地址偶地址偶地址奇地址奇地址較高地址較高地址(c c)向偶地址寫向偶地址寫1 1個字(規(guī)則字操作)個字(規(guī)則字操作)80868086較低地址較低地址偶地址偶地址奇地址奇地址較高地址較高地址(d d)向奇地址寫向奇地址寫1 1個字(非
35、規(guī)則字操作)個字(非規(guī)則字操作)偶地址偶地址奇地址奇地址深色虛線箭頭為深色虛線箭頭為忽略了的寫字節(jié)忽略了的寫字節(jié)操作操作492.4.3 8086的I/O組織端口:8086系統(tǒng)和外部設(shè)備之間都是通過I/O芯片來聯(lián)系的,每個I/O芯片都有1個或幾個端口(1個端口一般對應(yīng)了芯片內(nèi)部的1個或者1組寄存器)。CPU通過端口來訪問I/O芯片,以實現(xiàn)CPU和I/O芯片之間的數(shù)據(jù)交互。端口地址:為了區(qū)分各個端口以便于CPU訪問,系統(tǒng)給每個端口分配一個地址,此地址叫該端口的端口地址,或端口號。各個端口號不能重復。端口地址分配:對端口地址進行分配,有兩種方式:存儲器統(tǒng)一編址方式I/O獨立編址方式。50圖2-16
36、存儲器統(tǒng)一編址方式和I/O獨立編址方式示意圖(a)存儲器統(tǒng)一編址方式示意圖將內(nèi)存中一部分存儲單元供將內(nèi)存中一部分存儲單元供I/OI/O端口使用;可用訪問內(nèi)存端口使用;可用訪問內(nèi)存單元的指令來訪問單元的指令來訪問I/OI/O端口。端口。 (b)I/O獨立編址方式示意圖內(nèi)存和內(nèi)存和I/OI/O端口分別采用各自端口分別采用各自獨立的地址空間;必須要有獨立的地址空間;必須要有專用指令來訪問專用指令來訪問I/OI/O端口。端口。I/O空間空間0000HFFFFH00000H內(nèi)存空間內(nèi)存空間FFFFFH1M00000H內(nèi)存空間內(nèi)存空間供供I/O接口接口使用使用FFFFFH518086系統(tǒng)端口地址8086系
37、統(tǒng)采用I/O獨立編址方式。8086CPU中通過M/IO引腳電平來區(qū)分對內(nèi)存訪問還是對I/O訪問。專用I/O指令:讀操作(IN指令 RD有效,WR無效)寫操作(OUT指令 WR有效,RD無效)端口地址空間為64KB(地址范圍0000FFFFH )。8086CPU的PC/XT微機中,只使用了十位端口地址A9A0,共1KB空間。前256個端口(0000H00FFH)供給系統(tǒng)板上I/O接口芯片。后768個端口(0100H03FFH)供給擴展槽上I/O接口控制卡或做在主板上的I/O接口電路使用(如硬盤接口)。52系統(tǒng)板上接口芯片的端口地址系統(tǒng)板上接口芯片的端口地址DMAC1, DMAC2DMA頁面寄存器
38、頁面寄存器0000001FH, 00C000DFH0080009FH中斷控制器中斷控制器1, 中斷控制器中斷控制器20020003FH, 00A000BFH定時器定時器并行接口芯片(鍵盤接口)并行接口芯片(鍵盤接口)RT/CMOS RAM協(xié)處理器協(xié)處理器0040005FH0060006FH0070007FH00F000FFHI/O通道端口地址通道端口地址游戲控制卡游戲控制卡0200020FH并行控制卡并行控制卡1, 并行控制卡并行控制卡20370037FH, 0270027FH串行控制卡串行控制卡1, 串行控制卡串行控制卡203F803FFH, 02F802FFH原型插件板(用戶可用)原型插件
39、板(用戶可用)0300031FH同步通信卡同步通信卡1, 同步通信卡同步通信卡203A003AFH, 0380038FH單顯單顯MDA ,彩顯,彩顯CGA, 彩顯彩顯EGA/VGA03B003BFH, 03D003DFH, 03C003CFH軟驅(qū)控制器軟驅(qū)控制器, 硬驅(qū)控制器硬驅(qū)控制器03F003FFH, 01F001FFHPC網(wǎng)卡網(wǎng)卡0360036FH53本章要點總線接口部件 (BIU) 和執(zhí)行部件(EU) 的功能及特點最小工作模式和最大工作模式的特點與區(qū)別最小工作模式典型連接電路指令周期、總線周期、機器周期最小模式下的總線讀/寫操作時序,及其與典型電路對應(yīng)關(guān)系中斷概念、中斷向量和各種類型中
40、斷的特點。8086的存儲器的邏輯地址、物理地址,及其相互關(guān)系8086的存儲體結(jié)構(gòu),規(guī)則字/不規(guī)則字的操作8086 I/O端口組織54習 題1. 計算(10101.01)2+(10101.01) 壓縮BCD+(15.4)16 = ( )102. 8086與8088微處理器的主要區(qū)別是什么?3. 總結(jié)8086/8088最小模式和最大模式的不同點。4. 軟件中斷、不可屏蔽中斷和可屏蔽中斷的各自特點。5. 往內(nèi)存單元1000:2000H開始依次存放三個字數(shù)據(jù):1234H, 5678H,9ABCH,則物理地址12004H單元中存放的數(shù)據(jù)是 H,存放此3個字數(shù)據(jù)需要 個總線周期.6. 已知部分內(nèi)存分布如右
41、圖所示, 則中斷類型號為22H的中斷向量的入口地址為 H,其對應(yīng)的中斷處理程序段地址和偏移地址分別為 H和 H。7. 最小模式下,從內(nèi)存讀入一個字符到8086CPU,CPU引腳M/IO 、A19AD0、RD、ALE、DEN有效的先后順序是 。8. CPU執(zhí)行減法4AE0H9090H 后,標志寄存器中SF 、ZF 、CF 、OF 。 地址0087H0088H0089H008AH008BH01H78HB6H23HA1H8086/8088 CPU 在最小模式下實現(xiàn)多主控部件最大模式的主要特點是:CPU的主要控制信號不是獨立的信號引腳形式,而是信號組合的形式。好處:(1)擴充了控制信號的類型和數(shù)量;(2)使得系統(tǒng)可以構(gòu)建兩套(層)總線。外部增加的專用器件稱為總線控制器,主要用于組合控制信號的譯碼及總線管理。 8288的主要功能為:(1)對CPU最大模式下的組合控制信號進行譯碼,產(chǎn)生多個獨立的控制信號,擴展CPU控制總線的功能。(2)對自身譯碼后的控制信號以及地址鎖存器和數(shù)據(jù)收發(fā)器進行管理,使CPU能夠獨占系統(tǒng)總線或者與其它主控部件共享系統(tǒng)總線(隔離或開通CPU與系統(tǒng)總線的聯(lián)系)。練
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 文化鑒賞課程設(shè)計
- 技術(shù)相關(guān)課程設(shè)計
- 智能制造基礎(chǔ)課程設(shè)計
- 洗碗機課課程設(shè)計
- 數(shù)字信號課程設(shè)計IIR
- 廢氣處理課程設(shè)計題目
- 易貨營銷培訓課程設(shè)計
- 溫州社保課程設(shè)計
- 機械原理課程設(shè)計代做
- 烘培英文教學課程設(shè)計
- 信息安全意識培訓課件
- Python試題庫(附參考答案)
- MOOC 理解馬克思-南京大學 中國大學慕課答案
- 涂色畫簡筆畫已排可直接打印涂色
- 空調(diào)維修派工單(共1頁)
- 運動場監(jiān)理大綱
- 特種設(shè)備日常運行記錄表(共4頁)
- 部編本語文八年級上全冊文言文課下注釋
- 十二種健康教育印刷資料
- RTO處理工藝PFD計算
- 凱旋帝景地產(chǎn)杯籃球爭霸賽方案
評論
0/150
提交評論