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