8086的一些答案
29.總線周期的含義是什么?8086/8088的基本總線周期由幾個(gè)時(shí)鐘組成?如果一個(gè)CPU的時(shí)鐘頻率為24MHz,那么,它的一個(gè)時(shí)鐘周期為多少?一個(gè)基本總線周期為多少?如主頻為15MHz呢?
總線周期的含義是計(jì)算機(jī)執(zhí)行一條訪問(wèn)內(nèi)存或端口的機(jī)器指令的時(shí)間;8086/8088的基本總線周期由4個(gè)時(shí)鐘周期組成;如果CPU的時(shí)鐘頻率為24MHz,那么它的一個(gè)時(shí)鐘周期為41.5ns,一個(gè)基本總線周期為166ns;如果CPU的時(shí)鐘頻率為15MHz,那么它的一個(gè)時(shí)鐘周期為66.67ns,一個(gè)基本總線周期為266.67ns。(遺失題由李建完成)
30.在總線周期的T1、T2、T3、T4狀態(tài),CPU分別執(zhí)行什么動(dòng)作?什么情況下需要插入等待狀態(tài)Tw?Tw在哪兒插入?怎樣插入?
在總線周期的T1、T2、T3、T4狀態(tài),CPU分別執(zhí)行的動(dòng)作是:
(1) 在T1狀態(tài),CPU往多路復(fù)用總線上發(fā)出地址信息,以指出要尋址的存儲(chǔ)單元或處設(shè)端口的地址;
(2) 在T2狀態(tài),CPU從總線上撤消地址,而使總線的低16位浮置成高阻狀態(tài),為傳輸數(shù)據(jù)作準(zhǔn)備??偩€的最高4位(A19-A16)用來(lái)輸出本總線周期狀態(tài)信息,這些狀態(tài)信息用來(lái)表示中斷允許狀態(tài)、當(dāng)前正在使用的段寄存器名等;
(3) 在T3狀態(tài),多路總線的高位繼續(xù)提供狀態(tài)信息,而多路總線的低16位(8088則為低8位)上出現(xiàn)由CPU的數(shù)據(jù)或者CPU從存儲(chǔ)器或者CPU從存儲(chǔ)器或端口讀入或端口讀入的數(shù)據(jù);
(4) 在T4狀態(tài),總線結(jié)束。在有些情況下,外設(shè)或存儲(chǔ)器速度較慢,不能及時(shí)地配合CPU傳送數(shù)據(jù)。這時(shí),外設(shè)或存儲(chǔ)器會(huì)通過(guò)“Ready”信號(hào)在T3狀態(tài)啟動(dòng)前向CPU發(fā)一個(gè)“數(shù)據(jù)未準(zhǔn)備好”信號(hào),于是CPU會(huì)在T3之后插入1個(gè)或多個(gè)附加的時(shí)鐘周期Tw
31. 從引腿信號(hào)上看,8086和8088有什么不同?
(1) 由于8088只能傳輸8位數(shù)據(jù),所以8088只有8個(gè)地址引腿兼為數(shù)據(jù)引腿;而8086是按16位傳輸數(shù)據(jù)的,所以有16個(gè)地址/數(shù)據(jù)復(fù)用引腿;(2) 另外8086和8088的控制線引腿定義中第28和34腿也不一樣,在最小模式時(shí),8088和8086的第28腿的控制信號(hào)相反,而8086的第34腿為BHE/S7,BHE用來(lái)區(qū)分是傳送字節(jié)、還是字,8088的第34腿為SS0,用來(lái)指出狀態(tài)信息,不能復(fù)用。
32. CPU啟動(dòng)時(shí),有那些特征?如何尋找8086/8088系統(tǒng)的啟動(dòng)程序?
在8088/8086系統(tǒng)中,CPU被啟動(dòng)后,處理器的標(biāo)志寄存器、指令指針寄存器IP、段寄存器DS、SS、ES和指令隊(duì)列都被清零,但是代碼段寄存器CS被設(shè)置為FFFFH。因?yàn)镮P=0000,而CS=FFFFH,所以,8088/8086將從地址FFFF0H開始執(zhí)行指令。通常,在安排內(nèi)存區(qū)域時(shí),將高地址區(qū)作為只讀存儲(chǔ)區(qū),而且在FFFF0H單元開始的幾個(gè)單元中入一條無(wú)條件轉(zhuǎn)移指令,轉(zhuǎn)到一個(gè)特定的程序中,這個(gè)程序往往實(shí)現(xiàn)系統(tǒng)初始化、引導(dǎo)監(jiān)控程序或者引導(dǎo)操作系統(tǒng)等功能,這樣的程序叫做引導(dǎo)和裝配程序。
33. CPU在8086的微機(jī)系統(tǒng)中,為什么常用AD0作為低8位數(shù)據(jù)的選通信號(hào)?
在8086系統(tǒng)中,常將AD0作為低8位數(shù)據(jù)的選通信號(hào),因?yàn)槊慨?dāng)CPU和偶地址單元或偶地址端口交換數(shù)據(jù)時(shí), 在T1狀態(tài),AD0引腿傳送的地址信號(hào)必定為低電平,在其他狀態(tài), 則用來(lái)傳送數(shù)據(jù).而CPU的傳輸特性決定了只要是和偶地址或偶地址端口交換數(shù)據(jù),那么,CPU必定通過(guò)總線低8位(AD7-AD0)傳輸數(shù)據(jù).可見,如果在總線周期的T1狀態(tài),AD0為低電平,實(shí)際上就指示了在這一總線周期中,CPU將用總線低8位和偶地址單元或偶地址端口交換數(shù)據(jù)。
34. 8086和8088在最大模式和最小模式時(shí),引腿信號(hào)分別有什么不同?
[答案] 引腿 名稱 功能
最小模式 24 INTA 用來(lái)對(duì)外的中斷請(qǐng)求作出響應(yīng).
25 ALE 作為鎖存信號(hào),對(duì)地址進(jìn)行鎖存
26 DEN 為收發(fā)器提供一個(gè)信號(hào),說(shuō)明CPU當(dāng)前準(zhǔn)備發(fā)送或接收數(shù)據(jù)
27 DT/R 用來(lái)控制8286/8287的數(shù)據(jù)傳送方向
28 M/IO 區(qū)分CPU進(jìn)行存儲(chǔ)器訪問(wèn)還是輸入/輸出訪問(wèn)的控制信號(hào)
29 WR 作為寫信號(hào)輸出端,低電平有效
30 HLDA 作為CPU響應(yīng)其他部件發(fā)出總線請(qǐng)求的輸出端
31 HOLD 作為其他部件向CPU發(fā)出總線請(qǐng)求信號(hào)的輸入端
最大模式 24,25 QS1,QS0 這兩個(gè)信號(hào)組合起來(lái)提供了前一個(gè)時(shí)鐘周期中指令隊(duì)列的狀態(tài)
26,27,28 S2,S1,S0 這信號(hào)組合起來(lái)可以指出當(dāng)前總線周期所進(jìn)行數(shù)據(jù)傳輸過(guò)程的類型
29 LOCK 總線封鎖信號(hào)輸出端,有效時(shí)系統(tǒng)中其他總線不能占有總線
30,31 RQ/GT1,RQ/GT0供CPU以外的2個(gè)處理器用來(lái)發(fā)出使用總線的請(qǐng)求信號(hào)和接收CPU對(duì)總線請(qǐng)求回答的信號(hào)。
35. 8086和8088是怎樣解決地址線和數(shù)據(jù)線的復(fù)用問(wèn)題的? ALE信號(hào)何時(shí)處于有效電平?
8086/8088是通過(guò)利用ALE信號(hào)的是否有效來(lái)解決兩線的復(fù)用問(wèn)題的。ALE作為最小模式的地址鎖存允許信號(hào)輸出端,在任何總線周期的T1狀態(tài),ALE輸出有效電平,以表示當(dāng)前在地址/數(shù)據(jù)復(fù)用總線上輸出的是地址信息。
36. BHE信號(hào)和A0信號(hào)是怎樣的組合解決存儲(chǔ)器和外設(shè)端口的讀/寫操作的?這種組合決定了8086系統(tǒng)中存儲(chǔ)器偶地址體及奇地址體之間應(yīng)該用什么信號(hào)區(qū)分?怎樣區(qū)分?
這種組合決定了8086系統(tǒng)中存儲(chǔ)器偶地址和奇地址之間用AD。若在總線周期的T1狀態(tài)為低電平,則在這一周期中,CPU將用總線低8位和偶地址單元或偶地址端口交換數(shù)據(jù)。代碼組合和對(duì)應(yīng)的操作:0 0 從偶地址開始讀一個(gè)字。 AD15~ AD0;1 0 從偶地址單元或端口讀/寫一個(gè)字字節(jié) AD7~AD0;0 1 從奇地址單元或端口讀/寫一個(gè)字節(jié) AD15~AD0;0 1 從奇地址開始讀/寫一個(gè)字 AD15~AD8;1 0 (在第一個(gè)總線周期將低8位數(shù)字送到AD15~AD8,在第二個(gè)總線周期,將高8位數(shù)字送AD7~AD0。
37. RESET信號(hào)來(lái)到后,CPU的狀態(tài)有那些特點(diǎn)?
RESET信號(hào)來(lái)到后,CPU便結(jié)束當(dāng)前操作,并對(duì)處理器標(biāo)志寄存器,IP,DS,SS,ES 及指令隊(duì)列清零,而將CS設(shè)置為FFFFH,當(dāng)復(fù)位信號(hào)變?yōu)榈碗娖綍r(shí),CPU從FFFF0H開始執(zhí)行程序。
38.在中斷響應(yīng)過(guò)程中,8086往8259A發(fā)的兩個(gè)INTA信號(hào)分別起什么作用?
在中斷響應(yīng)過(guò)程中,CPU向8259A的INTR引腿發(fā)二個(gè)負(fù)脈沖,作用:第一個(gè)負(fù)脈沖通知CPU有中斷請(qǐng)求,要送中斷類型;第二個(gè)負(fù)脈沖傳輸中的類型。
39. 8088系統(tǒng)在最小模式時(shí)應(yīng)該怎樣配置?
8088在最小模式下的典型配置。圖見課本。
1, 有一片8284A,作這時(shí)鐘發(fā)生器。
2, 有3片8282或74LL373,用來(lái)作為地址鎖存器。
3, 當(dāng)系統(tǒng)中所連的存儲(chǔ)器和外設(shè)較多時(shí),需要增加數(shù)據(jù)總線的驅(qū)動(dòng)能力,這時(shí),要用2片8286/8287作為總線收發(fā)器。
40. 8086在最大模式下應(yīng)當(dāng)怎樣配置?最大模式時(shí)為什么一定要用總線控制器?總線控制器的輸入信號(hào)是什么?輸出信號(hào)是什么?
8086在最大模式下的配置如下圖所示:
最大模式時(shí),用總線控制器的原因在于:在最大模式系統(tǒng)中,一般包含2個(gè)或多個(gè)處理器,這樣就要解決主處理器和協(xié)處理器之間的協(xié)調(diào)要作問(wèn)題和對(duì)總線的共享控制問(wèn)題,為此,要從軟件和硬件兩方面去尋求解決措施。8288總線控制器就是出于這種考慮而加在最大模式系統(tǒng)中的??偩€控制器的輸入信號(hào)是:CLK、S0、S1、S2。其輸出信號(hào)是:DT/R、DEN、INTA、MRDC、MWTC、IORC、IOWC、ALE
41. 在編寫程序時(shí),為什么通??傄瞄_放中斷指令來(lái)設(shè)置中斷允許標(biāo)志?
在復(fù)位時(shí),由于標(biāo)志寄存器被清零,即所有標(biāo)志位都被清除了,這樣,所有從INTR引腿進(jìn)入的可屏蔽中斷都得不到允許,因而,在編程時(shí),通常總要用開放中斷指令來(lái)設(shè)置中斷允許標(biāo)志。
42. T1狀態(tài)下,數(shù)據(jù)/地址線上是什么信息?用哪個(gè)信號(hào)將此信息鎖存起來(lái)?數(shù)據(jù)信息是什么時(shí)候給出的?用時(shí)序表示出來(lái)。
在T1狀態(tài)下,數(shù)據(jù)/地址線上是地址信號(hào)。在T1狀態(tài)從ALE引腿上輸出一個(gè)正脈沖作為地址鎖存信號(hào)。數(shù)據(jù)信息是T3狀態(tài)時(shí)給出的。其時(shí)序如下所示:
43.畫出8086最小模式的讀周期時(shí)序。
44.系統(tǒng)中有多個(gè)總線模塊時(shí),在最大模式和最小模式下分別用什么方式來(lái)傳遞總線控制權(quán)?
在最小模式下總線控制權(quán)是通過(guò)HOLD引腳來(lái)實(shí)現(xiàn)的,當(dāng)系統(tǒng)中CPU之外的另一個(gè)模塊要求占用總線時(shí),通過(guò)此引腿向CPU發(fā)一個(gè)高電平的請(qǐng)求信號(hào)。這時(shí),如果CPU允許讓出總線,就在當(dāng)前總線周期完成時(shí),于T4狀態(tài)從HOLD引腿發(fā)出一個(gè)回答信號(hào),對(duì)剛才的HOLD 請(qǐng)求作出響應(yīng)。同時(shí),CPU使地址/數(shù)據(jù)總線和控制狀態(tài)線處于浮空狀態(tài)??偩€請(qǐng)求部件收到HLDA信號(hào)后,就獲得了總線控制權(quán)。在最小模式下總線控制權(quán)是通過(guò)LOCKT RQ/GT1,RQ/GT0引腳來(lái)實(shí)現(xiàn)的,首先,總線模塊通過(guò)RQ/GT1向CPU發(fā)出一個(gè)請(qǐng)求信號(hào),并通過(guò)RQ/GT0來(lái)接受CPU的響應(yīng),如果LOCK為低電平,則總線請(qǐng)求部件就獲得了總線控制權(quán)。
45. 概述怎樣用軟件方法和硬件方法來(lái)進(jìn)行定時(shí)。
用軟件方法定時(shí),一般都是根據(jù)所需要的時(shí)間常數(shù)來(lái)設(shè)計(jì)一個(gè)延遲子程序,延遲子程序中包含一定的指令,設(shè)計(jì)者要對(duì)這些指令的執(zhí)行時(shí)間進(jìn)行嚴(yán)密的計(jì)算或者精確的測(cè)試,以便確定延遲時(shí)間的否符合要求。用硬件方法定時(shí),就要用到計(jì)數(shù)器/定時(shí)器。在簡(jiǎn)單的軟件控制下,產(chǎn)生準(zhǔn)確的時(shí)間延遲,這種方法的主要思想是根據(jù)需要的定時(shí)時(shí)間,用指令對(duì)計(jì)數(shù)器/定時(shí)器設(shè)置定時(shí)常數(shù),并用指令啟動(dòng)計(jì)數(shù)器/定時(shí)器,于是計(jì)數(shù)器/定時(shí)器開始計(jì)數(shù),計(jì)到確定值時(shí),便自動(dòng)產(chǎn)生一個(gè)定時(shí)輸出,在計(jì)數(shù)器/定時(shí)器開始工作以后,CPU就不必去管它,而可以去做別的工作。
46. 8253計(jì)數(shù)器/定時(shí)器中,時(shí)鐘信號(hào)CLK和門脈沖信號(hào)GATE分別起什么作用?
時(shí)鐘信號(hào)CLK決定計(jì)數(shù)速率,門脈沖信號(hào)GATE是時(shí)鐘的控制信號(hào)。(以上6題由徐芳解答)
47.設(shè)8253三個(gè)計(jì)數(shù)器的端口地址為201H、202H、203H,控制寄存器端口地址200H。試編寫程序片段,讀出計(jì)數(shù)器2的內(nèi)容,并把讀出的數(shù)據(jù)裝入寄存器AX。
MOV AL,80H
OUT 200H,AL
IN AL,203H
MOV BL,AL
IN AL,203H,
MOV BH,AL
MOV AX,BX
48.設(shè)8253三個(gè)計(jì)數(shù)器的端口地址為201H、202H、203H,控制寄存器端口地址200H。輸入時(shí)鐘為2MHz,讓1號(hào)通道周期性的發(fā)出脈沖,其脈沖周期為1ms,試編寫初化程序段。
使用計(jì)數(shù)器1,先讀低8位,后讀高8位,設(shè)為方式3,二進(jìn)制計(jì)數(shù),控制字是76H。設(shè)控制口的地址是200H,計(jì)數(shù)器0的地址是202H。程序段如下:
MOV DX,200H
MOV AL,76H
OUT DX,,AL
MOV DX,202H
MOV AX,2000
OUT DX,AL
MOV AL,AH
OUT DX,AL
49. 設(shè)8253計(jì)數(shù)器的時(shí)鐘輸入頻率為1.91MHz,為產(chǎn)生25KHz的方波輸出信號(hào),應(yīng)向計(jì)數(shù)器裝入的計(jì)數(shù)初值為多少?
76.4
應(yīng)向計(jì)數(shù)器裝入的初值是76。
50.設(shè)8253的計(jì)數(shù)器0,工作在方式1,計(jì)數(shù)初值為2050H;計(jì)數(shù)器1,工作在方式2,計(jì)數(shù)初值為3000H;計(jì)數(shù)器2,工作在方式3,計(jì)數(shù)初值為1000H。如果三個(gè)計(jì)數(shù)器的GATE都接高電平,三個(gè)計(jì)數(shù)器的CLK都接2MHz時(shí)鐘信號(hào),試畫出OUT0、OUT1、OUT2的輸出波形。
計(jì)數(shù)器0工作在方式1,即可編程的單脈沖方式。這種方式下,計(jì)數(shù)的啟動(dòng)必須由外部門控脈沖GATE控制。因?yàn)镚ATE接了高電平,當(dāng)方式控制字寫入后OUT0變高,計(jì)數(shù)器無(wú)法啟動(dòng),所以O(shè)UT0輸出高電平。
計(jì)數(shù)器1工作在方式2,即分頻器的方式。輸出波形的頻率f=666.7HZ,其周期為1.5ms,輸出負(fù)脈沖的寬度等于CLK的周期為0.5μs。
計(jì)數(shù)器2工作在方式3,即方波發(fā)生器的方式。輸出頻率f= 2000Hz的對(duì)稱方波。
評(píng)論