微機(jī)原理 匯編語言及接口技術(shù) 答案_第1頁
微機(jī)原理 匯編語言及接口技術(shù) 答案_第2頁
微機(jī)原理 匯編語言及接口技術(shù) 答案_第3頁
微機(jī)原理 匯編語言及接口技術(shù) 答案_第4頁
微機(jī)原理 匯編語言及接口技術(shù) 答案_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、題1.2參考p.2和p.51.9參考p.13-141.11(1)174.66 D = 10101110.10101000 B = 0AE.A8 H (0AE.A9H / 0AE.A8F5C2H)= 2283.34375 D= 989350.375 D1.12解:八位機(jī)器數(shù)原碼、反碼、補(bǔ)碼、移碼+3700100101001001010010010110100101 25H25H 25H 0A5H-3710100101110110101101101101011011 0A5H0DAH0DBH5BH1.13解:補(bǔ)碼機(jī)器數(shù)擴(kuò)充為16位和32位形式+370025 H00000025 H-37FFDB H

2、FFFFFFDB H1.14 解:46H作為無符號數(shù) = 70 D46H作為補(bǔ)碼 = +70 D46H作為BCD碼 = 46 D46H作為ASCII碼 = F1.19解:英文字母 D和d的ASCII碼為44H和64H;回車CR為0D H、換行LF為0A H; 數(shù)碼0、空格SP、空操作NUL的ASCII碼分別為30H、20H、00H。2.5題參考p.32邏輯地址形式為段地址:偏移地址物理地址 = 段地址*16+段內(nèi)偏移地址1MB空間最多可以分成64K個邏輯段,因為段地址的起始必須是16的倍數(shù),220/24=216=64K個。物理地址為:(1) 0FFFF0H(2)00417H(3)24500H(

3、4)0BC777H2.8 已知DS=2000H,BX=0100H,SI=0002H,存儲單元20100H20103H依次存放12H、34H、56H、78H,21200H21203H依次存放2AH、4CH、B7H、65H,說明下列指令執(zhí)行完后AX寄存器的內(nèi)容以及源操作數(shù)的尋址方式。(1)mov ax, 1200h答:ax=1200h立即尋址方式(2)mov ax, bx答:ax=0100h寄存器尋址方式(3)mov ax, 1200h答:ax=21200h=4C2AH直接尋址方式(4)mov ax, bx答:ax=20100h=3412H寄存器間接尋址方式(5)mov ax, bx+1100h答

4、:ax=21200h=4C2AH相對尋址方式(6)mov ax, bx+si答:ax=20102h=7856H基址變址尋址方式(7)mov ax, bxsi+1100h答:ax=21202h=65B7H相對基址變址尋址方式2.9 指出下列指令的錯誤原因:movcx, dl;源操作數(shù)長度與目的操作數(shù)不一致mov ip, ax;ip指令指針不能人為改變,由轉(zhuǎn)移指令或子程序調(diào)用來改變mov es, 1234h;立即數(shù)不能直接送段寄存器moves, ds;段寄存器之間不能直接傳遞moval, 300;源操作數(shù)長度超過al寄存器mov sp, ax;間接尋址可使用bx或bp,堆棧操作應(yīng)使用專用指令,mo

5、vax, bx+di;源操作數(shù)格式錯,應(yīng)該是 bx+dimov 20h, ah;目的操作數(shù)不可以是立即數(shù)2.13解:運(yùn)算公式為 v-(x*y+z-540)/x結(jié)果商存放在ax中,余數(shù)在dx中。2.16解:求有效地址(1)EA = 1256H(2)EA = 32F7H2.19解:求首地址為array的20個字的數(shù)組的元素之和,結(jié)果存放于地址為total的字單元中。-題4.1 參見p.14-15 8088具有 20 根地址線。在訪問內(nèi)存時使用地址 A0A19 ,可直接尋址 1MB 容量的內(nèi)存范圍;在訪問外設(shè)時使用地址線 A0A15 ,共能尋址 64K 個輸入輸出端口。 實際上PC/XT在尋址外設(shè)時

6、,只使用地址線A9A0;若A91,說明它要尋址的IO端口位于IO插卡上。4.2參見p.106-107總線操作指的是發(fā)生在總線上的某些特定操作,總線周期指的是完成一次特定總線操作所需的時間。對8088而言其典型的總線周期由 4個T狀態(tài)組成。PC/XT所采用的時鐘頻率為4.77MHz,每個T狀態(tài)的持續(xù)時間為210ns。如果CLK引腳接5MHz的時鐘信號,那么每個T狀態(tài)的持續(xù)時間為200ns。 4.4解答: 當(dāng)8088進(jìn)行讀寫存儲器或I/O接口時,如果存儲器或I/O接口無法滿足CPU的讀寫時序(來不及提供或讀取數(shù)據(jù)時),需要CPU插入等待狀態(tài)TW。(在T3前沿檢測Ready信號,若無效則插入TW 。

7、) 具體在讀寫總線周期的T3和T4之間插入TW。4.6參見p.99,p.1108088的某些輸出線有三種狀態(tài):高電平、低電平、懸空(高阻態(tài)),稱為三態(tài)能力。在高阻狀態(tài),CPU放棄其了對該引腳的控制權(quán),由連接它的設(shè)備接管。具有三態(tài)能力的引腳有:AD7AD0,A15A8,A19/S6A16/S3,ALE,IO/M*,WR*,RD*,DEN*,DT/R*。4.11總線周期IO/M*WR*RD*存儲器讀低高低存儲器寫低低高I/O讀(輸入操作)高高低I/O寫(輸出操作)高低高IO/M* 0WR* 0RD* 1WR* 1RD* 0MEMR*IOW*14.12 答:取該指令時引發(fā)存儲器讀總線操作。執(zhí)行該指令

8、時引發(fā)I/O讀總線操作。(時序圖略)4.13 8088系統(tǒng)最小組態(tài)下,對指令A(yù)DD 2000H,AX (長度3B)。答:取該指令時需要3個總線周期,均為存儲器讀周期。執(zhí)行該指令時需要4個總線周期,2個為存儲器讀總線周期(讀出字操作數(shù)參與運(yùn)算),2個為存儲器寫總線周期(保存16位運(yùn)算結(jié)果)。4.15 參見p.106圖74LS373 的G為電平鎖存引腳,控制選通且轉(zhuǎn)為無效時鎖存數(shù)據(jù)。OE* 輸出允許引腳,信號來自ALE。4.16 參見p.106圖數(shù)據(jù)收發(fā)器74LS245 是8位雙向緩沖器,G*控制端為低電平有效,可傳輸數(shù)據(jù);DIR控制導(dǎo)通方向:DIR1,AB;DIR0,AB。4.17 參見p.11

9、1-112歸納為:1、8086數(shù)據(jù)總線變?yōu)?6位,數(shù)據(jù)地址線復(fù)用為AD15AD0。2、8086指令隊列程度變?yōu)?字節(jié)長,當(dāng)有2個字節(jié)空才取下一指令。3、8088引腳IO/M* ,8086變?yōu)镸/IO*;4、引腳SS0* 變?yōu)锽HE*/S7,BHE* 的作用是使D15D8有效。5、8086存儲器組織為奇偶分塊,偶地址取字只要讀1次,奇地址取字需要讀兩次。6、I/O端口大都采用偶地址,目的是引導(dǎo)8位數(shù)據(jù)到低8位總線AD7AD0上,以提高效率。=5.1 Cache、主存和輔存的作用參見 p.120121 虛擬存儲器參見p.121 在CPU看來,訪問主存和訪問輔存有什么不同? 訪問主存:通過存儲器訪問

10、機(jī)器指令,按字隨機(jī)訪問。 訪問輔存:通過操作系統(tǒng),按塊順序訪問。5.2 在半導(dǎo)體存儲器中,RAM指的是 隨機(jī)存取存儲器 ,它可讀可寫,但斷電后信息一般會 丟失 ;而ROM指的是 只讀存儲器 ,正常工作時只能從中 讀取 信息,但斷電后信息 不會丟失 。以EPROM芯片2764為例,其存儲容量為8K8位,共有 8 條數(shù)據(jù)線和 13 條地址線。用它組成64KB的ROM存儲區(qū)共需 8 片2764芯片。5.4 一個容量為4K4位的假想RAM存儲芯片,他應(yīng)該有多少根地址線引腳和多少根數(shù)據(jù)線引腳?如果讓你來進(jìn)行設(shè)計,那么它還需要哪些控制引腳?這些引腳分別起什么樣的控制作用?解答:4K4的芯片應(yīng)該有12根地址

11、線引腳和4根數(shù)據(jù)線引腳??刂埔_應(yīng)該有:讀取信號OE*:有效時,表示讀取存儲單元的數(shù)據(jù)寫入信號WE*:有效時,表示將數(shù)據(jù)寫入存儲單元片選信號CS*:有效時,表示選中該芯片,可以進(jìn)行讀寫操作。5.7 什么是存儲芯片的位擴(kuò)充和地址擴(kuò)充?采用靜態(tài)RAM的芯片2114(1K*4位)或動態(tài)RAM的芯片4116(16K*1位)來組成32KB的RAM存儲區(qū),請問各需要多少芯片?在位方向和地址方向各需要進(jìn)行什么樣的擴(kuò)充?解答:(參見p.140) 使用多個芯片來擴(kuò)充存儲數(shù)據(jù)位的寬度,稱為位擴(kuò)充。采用多個芯片在地址方向上進(jìn)行擴(kuò)充,稱為地址擴(kuò)充或字?jǐn)U充。用SRAM 2114組成32KBRAM存儲區(qū):2片為一組,得1

12、KB,所以組成32KB就要32組,共需要64片SRAM 2114。用DRAM 4116組成32KBRAM存儲區(qū):8片為一組,得16KB,所以組成32KB只要2組,共需要16片DRAM 4116。2114(1) A9A0I/O4I/O1片選1D3D0D7D4A9A02114(2)A9A0I/O4I/O1CECE2114(1) A9A0I/O4I/O1片選32D3D0D7D4A9A02114(2)A9A0I/O4I/O1CECE5.8 存儲芯片為什么要設(shè)置片選信號?它與系統(tǒng)地址總線有哪些連接方式?采用何種連接方式可避免地址重復(fù)?采用哪些連接方式可節(jié)省用于譯碼的硬件?解答:片選信號說明該存儲器芯片是

13、否被選中正常工作,設(shè)置它可以比較方便地實現(xiàn)多個存儲器芯片組成大容量的存儲空間。存儲器片選信號通常與CPU地址總線的高位地址線相關(guān)聯(lián),可以采用“全譯碼”、“部分譯碼”、“線選譯碼”方式。采用全譯碼方式可以避免地址重復(fù)。采用部分或線選譯碼可以節(jié)省譯碼硬件。5.9 在一個針對存儲器的譯碼系統(tǒng)中,如果有4個地址線未參與譯碼,那么每個存儲單元會同時擁有幾個地址?解答: 理論上每個存儲單元會同時擁有16個地址。5.10 解答:p.144圖5.33中4個存儲芯片的可用地址范圍:6264(1)6264(2)2732(1)2732(2)00000 01FFFH02000 03FFFH04000 04FFFH05

14、000 05FFFH40000 41FFFH42000 43FFFH44000 44FFFH45000 45FFFH80000 81FFFH82000 83FFFH84000 84FFFH85000 85FFFHC0000C1FFFHC2000C3FFFHC4000 C4FFFHC5000 C5FFFH重復(fù)地址由于A19A18的不定性,每片各有4段范圍。5.11采用全譯碼方式和6264芯片( SRAM,容量8K8位),在內(nèi)存40000H43FFFH區(qū)段擴(kuò)充RAM,請畫出這些芯片與最大組態(tài)的系統(tǒng)總線的連接示意圖。解: 方法為:容量=末地址首地址+1=214=16KB,所以要2片6264芯片。A1

15、2A0為片內(nèi)地址,A15A13作片選譯碼的輸入CBA,A19 A16A15 A13A12A0地址范圍1201000100000001全0全1全0全140000H41FFFH42000H43FFFHA12A0138A18 A15 A14A13CBAE3E2E1Y0A19A17A16D7D0(1)6264CS1WEOEMEMWMEMR(2)6264CS1WEOEY3Y2Y15VCS2CS25.13 采用3:8譯碼器74LS138和2764芯片(EPROM,8K8位),通過全譯碼方式在8088系統(tǒng)的地址最高端組成32KB的ROM區(qū),請畫出各2764芯片與8088最大組態(tài)下形成的線條總線的連接示意圖。

16、解答: 注意地址最高端組成32KB的ROM區(qū),意味著地址范圍是 F8000HFFFFFH,這樣最高五根地址線A19A15上要全為1。2764芯片的片內(nèi)地址是13根即A12A0,它們是全0到全1變化;現(xiàn)在需要4片來構(gòu)成32KB存儲區(qū),采用3:8譯碼器的話,A15A13應(yīng)該取后4種情況,即取100111分別產(chǎn)生Y4Y7。其余地址線可以以多種方式組合產(chǎn)生控制信號。A19 A16A15 A13A12A0地址范圍12341111111111111111100101110111全0全1全0全1全0全1全0全1F8000HF9FFFHFA000HFBFFFHFC000HFDFFFHFE000HFFFFFHA

17、12A0(1)2764(2)2764CE*A15 A14A13A16CBAE3138 A17Y7E2E1MEMR*(3)2764(4)2764 Y6Y5Y4A19A18 D7D0CE*CE*CE*OE*OE*OE*OE*考慮:如果要求地址從低端開始的話,高5位全0,即00000H07FFFH,如何連接?5.16訪問的局部性原則P122 第1行。高速緩存和虛擬存儲的目的p121下部。=6.1 在80x86系統(tǒng)中,I/O端口的地址采用 獨(dú)立 編碼方式,訪問端口時要使用專門的 I/O 指令,有 2 種尋址方式,其具體形式是: 直接尋址和DX間接尋址 。6.2 一般的I/O接口電路安排有哪三類寄存器?

18、他們各自的作用是什么?解答: (參見p.154) 數(shù)據(jù)寄存器保存外設(shè)給CPU和CPU發(fā)往外設(shè)的數(shù)據(jù)。 狀態(tài)寄存器保存外設(shè)或接口電路的狀態(tài)。 控制寄存器保存CPU給外設(shè)或接口電路的命令。K7K1K0+5VD0D7A0A15CLKLS06反相驅(qū)動器LS2738D鎖存器LS244三態(tài)緩沖器8000H譯碼+5VLED0LED7GIOWIOR6.4解:K0單獨(dú)按下:輸入0FEH,控制L0 L7 依次循環(huán)亮燈,K1單獨(dú)按下:輸入0FDH,控制L7 L0 反向依次循環(huán)亮燈,程序流程略。BEG:MOV DX,8000HLOP0:IN AL,DXMOV BL,ALMOV CX,8;循環(huán)次數(shù)CMP AL,0FEH

19、;測試是否K0單獨(dú)按下JZ LOP1CMP AL,0FDH;測試是否K1單獨(dú)按下JZ LOP2MOV AL, 0OUTDX, ALJMP LOP0;利用狀態(tài)值0FEH作為開始位置,指向L0LOP1:MOV AL,BL NOT AL;因為有反相器LS06OUT DX,ALCALL DELAYROL BL,1;準(zhǔn)備下個燈亮位置LOOP LOP1JMP LOP0;LOP2:MOV BL,80H;首次亮L7,LPO3:MOV AL,BL ;為1的燈亮,因為有反相器LS06OUT DX,ALCALL DELAYROR BL,1;準(zhǔn)備下個燈亮位置LOOP LOP3JMP LOP06.5 數(shù)據(jù)口地址為FFE

20、0H,狀態(tài)口地址為FFE2H,當(dāng)狀態(tài)標(biāo)志D0=1時輸入數(shù)據(jù)就緒,編寫查詢方式進(jìn)行數(shù)據(jù)傳送程序,讀入100個字節(jié),寫到2000H:2000H開始的內(nèi)存中。解:(程序格式參見p.6364 ).CODEMOVAX, 2000HMOV DS,AX;段地址MOV BX,AX;偏移地址MOV CX,100NEXT:MOV DX,0FFE2HSTATUS:IN AL,DX;讀入狀態(tài)TEST AL,01HJZ STATUSDEC DXDEC DX;數(shù)據(jù)口地址IN AL,DXMOV BX,ALINC BXLOOP NEXTMOV AX, 4C00H;結(jié)束INT 21H6.6 某字符輸出設(shè)備,其數(shù)據(jù)端口和狀態(tài)端口

21、的地址均為80H。在讀取狀態(tài)時,當(dāng)標(biāo)志位D7為0時表明該設(shè)備閑,可以接收一個字符。請編寫采用查詢方式進(jìn)行數(shù)據(jù)傳送的程序段,要求將存放于符號地址ADDR處的一串字符(以$為結(jié)束標(biāo)志)輸出給該設(shè)備,注意在程序中加上注釋。解:參考答案一: mov bx, offset addragain:mov ah, bx;取一個字節(jié)的字符碼 cmp ah, $ jz donestatus: in al, 80h;查詢一次 test al, 80h jnz status mov al, ah out 80h, al;輸出一個字節(jié) inc bx jmp again;循環(huán)done: 參考答案二:.DATAaddrDB

22、 xxxx$.CODEMOVAX, DATAMOV DS, AXLEABX, addrStatus:INAL, 80H;讀入狀態(tài),if D7=1,為負(fù)數(shù)CMPAL, 0;或ROL AL,1JSStatus;JC STATUSMOV AL, BXCMPAL, $JZendofOUT80H, ALINCBXJMP StatusEndof:MOV AX, 4C00HINT 21H6.7 以可屏蔽中斷為例,說明一次完整的中斷過程主要包括那些環(huán)節(jié)?8088響應(yīng)可屏蔽中斷請求時需要先滿足那些前提條件?答: 中斷過程的主要環(huán)節(jié):( 參見p.165 )中斷請求、中斷響應(yīng)、關(guān)中斷、斷點保護(hù)、中斷源識別、現(xiàn)場保護(hù)

23、、中斷服務(wù)、恢復(fù)現(xiàn)場、開中斷、中斷返回。8088響應(yīng)可屏蔽中斷請求時需要先滿足:中斷允許IF1。當(dāng)前指令執(zhí)行完畢。6.8什么是中斷源?為什么要設(shè)立中斷優(yōu)先權(quán)?什么是中斷嵌套?何種情況下程序可能發(fā)生中斷嵌套?答:中斷源:計算機(jī)系統(tǒng)中引起中斷的事件或原因。當(dāng)多個中斷源同時請求時,CPU需要利用中斷優(yōu)先權(quán)決定首先響應(yīng)哪一個;當(dāng)一個中斷正在服務(wù)時,又發(fā)生了新的中斷請求,CPU需要利用中斷優(yōu)先權(quán)確定后者是否優(yōu)先權(quán)更高,以便實現(xiàn)中斷嵌套。中斷嵌套:當(dāng)一個中斷服務(wù)時CPU又響應(yīng)新的中斷請求就形成中斷嵌套。CPU允許中斷(開中斷)、新的中斷請求比正在服務(wù)的中斷優(yōu)先權(quán)更高,通常發(fā)生中斷嵌套。A0A15鎖存器IN

24、TR三態(tài)緩沖器譯碼 8001HD0D7中斷0中斷1中斷2IOR6.9參見P.171中斷返回讀入中斷狀態(tài)調(diào)用PROC0設(shè)備1中斷?N設(shè)備0中斷?設(shè)備2中斷?設(shè)備3中斷?NNNYYYY調(diào)用PROC1調(diào)用PROC2調(diào)用PROC3STIPUSH DXPUSHAXMOV DX,8001H STATUS:IN AL,DXTEST AL,01HJZ NEXT1CALL PROC0JMP DONESNEXT1:TEST AL,02HJZ NEXT2CALL PROC1JMP DONES NEXT2:TEST AL,04HJZ NEXT3CALL PROC2JMP DONES NEXT3:TEST AL,08H

25、JZ DONES CALL PROC3DONES:POPAXPOP DX IRET6.10 DMA的意思是 直接存儲器存取 ,主要用于高速外設(shè)和內(nèi)存間的數(shù)據(jù)傳送。進(jìn)行DMA傳送的一般過程是:外設(shè)先向DMA控制器提出 DMA傳送請求 ,DMA控制器通過 HOLD 信號有效向CPU提出總線請求,CPU回以 HLDA 信號有效表示響應(yīng)。此時CPU的三態(tài)信號線將輸出 高阻 狀態(tài),即將它們交由 DMAC(DMA控制器) 進(jìn)行控制,完成外設(shè)和內(nèi)存間的直接數(shù)據(jù)傳送。7.7 假如某并行總線的數(shù)據(jù)寬度為32位,工作頻率為100MHz,若2個時鐘周期傳送一次數(shù)據(jù),其傳輸速率是多少?如果在時鐘的前后沿各傳送一次數(shù)據(jù)

26、,其傳輸速率是多少?如果采用2-1-1-1的突發(fā)傳送模式,其平均傳輸速率是多少?解答:f =100MHz ,則時鐘周期T=1/f =10 ns1) 2T一次的傳輸速率,即頻率減半:fd = (32/8) * 100/2 M = 200 MB/s或fd = (32/8) / (2*10 ns) = 200 MB/s2) 前后沿各傳送一次,即頻率加倍:fd = (32/8) * 100*2 M = 800 MB/s或即1T2次:fd = (32/8) / (10/2 ns) = 800 MB/s3) 采用2-1-1-1的突發(fā)傳送模式,平均為5T4次:fd = (32/8) * 100*4/5 M

27、= 320 MB/s或fd = (32/8) /(5*10 ns /4) = 320 MB/s=8.1 8088CPU具有哪些中斷類型?各種中斷如何產(chǎn)生,如何得到中斷向量號?參見p.191、p.1921938.2 8088中斷向量表的作用是什么?(參見p.194)答:它是中斷向量號到對應(yīng)的中斷服務(wù)程序入口地址的鏈接表。 通過中斷向量號n,可以讀取中斷向量表的物理地址為 n*4 開始的單元,獲取中斷服務(wù)程序的入口地址(即中斷向量),長度4個字節(jié)。8.3 說明程序段的功能: (程序略,見p.212 上)答:此段程序?qū)⒅袛喾?wù)程序intproc的入口地址寫入中斷向量表的80h*4開始的單元中。 (s

28、tows 是數(shù)據(jù)串傳送指令,參見p.78。)(實際上可以使用指令序列: mov ax,seg intprocmov ds,axmov dx,offset intprocmov ax,2580hint 21h 來完成相同功能)8.4 8259A中IRR、IMR和ISR三個寄存器的作用是什么?答: ( 參見p.196197 ) 中斷請求寄存器IRR 保存8條外界中斷請求信號IR0IR7的請求狀態(tài) Di位為1表示IRi引腳有中斷請求;為0表示無請求 中斷服務(wù)寄存器ISR 保存正在被8259A服務(wù)著的中斷狀態(tài) Di位為1表示IRi中斷正在服務(wù)中;為0表示沒有被服務(wù) 中斷屏蔽寄存器IMR 保存對中斷請求

29、信號IR的屏蔽狀態(tài) Di位為1表示IRi中斷被屏蔽(禁止);為0表示允許8.5 PC/XT對8259A的初始化程序如下:mov al,13h;0001 0011out 20h,al;ICW1mov al,08h;00001000out 21h,al;ICW2mov al,09h;00001001out 21h,al;ICW4請說明其設(shè)定的工作方式?解答: 從第一個寫指令I(lǐng)CW1,看出是邊沿觸發(fā)、單片方式,有ICW4;第二個寫指令I(lǐng)CW2為中斷向量08h;第三個寫指令I(lǐng)CW4中斷方式字,表示普通全嵌套、數(shù)據(jù)線緩沖方式,從片、非自動中斷結(jié)束、16位微處理器。8.6 某時刻8259A的IRR內(nèi)容是0

30、8h,說明只有引腳IR3上有中斷請求。 某時刻8259A的ISR內(nèi)容為08h,說明只有IR3上的請求正在被CPU服務(wù)。 在兩片8259A級聯(lián)的中斷電路中,主片的第5級IR5接從片的中斷請求輸入,則初始化主、從片時ICW3的控制字分別是20H和05H。(分別是0010 0000 和0000 0101 )8.7 解:初始化時寫的是ICW命令,A0=0為ICW1,A0=1時按照順序決定是寫哪個初始化命令字。 當(dāng)8259處于工作狀態(tài)時,寫的是OCW,由地址A0和D4D3特征位共同決定是寫哪個操作命令字(A01時,寫OCW1;A00且D4D3=00時,寫OCW2,D4D3=01,寫OCW3)。在A01時

31、讀出的是IMR寄存器的內(nèi)容。8.8 題略p.212。解:根據(jù)題意:SFNM=0,AEOI=0,LTIM=0,ICW1=00010011,ICW2=90H,ICW4=0000x101,初始化8086 所接的8259A中斷控制器:MOVDX, 0FFDCH;對應(yīng)20H端口MOVAL, 13HOUTDX, ALMOVDX, 0FFDEH;對應(yīng)21H端口MOVAL, 90HOUTDX, ALMOVAL, 05HOUTDX, AL8.10 8259A的中斷請求有哪兩種觸發(fā)方式,它們分別對請求信號有什么要求?PC系列機(jī)中采用哪種方式?答:上跳沿觸發(fā),要求克服噪音尖峰。 高電平觸發(fā),請求及時撤銷請求信號。

32、PC系列機(jī)采用上升沿方式。 8.11 解答:0bh = 00001011 b,寫OCW3,接下來要讀的是ISR,中斷服務(wù)寄存器。8.12解答:0bch = 10111100 b,21H寫OCW1即IMR,結(jié)果是只允許IR0、IR1、IR6中斷,其他中斷被屏蔽。8.14 中斷服務(wù)程序的人口處為什么通常要使用開中斷指令?答: 因為8088在進(jìn)入中斷服務(wù)程序前的中斷響應(yīng)期內(nèi)會自動關(guān)中斷(令I(lǐng)F0),所以對于不十分重要的中斷源,其中斷服務(wù)程序的人口處要開中斷,以便可以實現(xiàn)中斷嵌套。-題9.3 8253每個通道有 6 種工作方式可供選擇。若設(shè)定某通道為方式0后,其輸出引腳為 低 電平;當(dāng) 寫入計數(shù)初值(

33、并進(jìn)入減1計數(shù)器) 后通道開始計數(shù), CLK 信號端每來一個脈沖 減1計數(shù)器 就減1;當(dāng) 計數(shù)器減為0 ,則輸出引腳輸出 高 電平,表示計數(shù)結(jié)束。8253的CLK0接1.5MHz的時鐘,欲使OUT0產(chǎn)生頻率為300KHz的方波信號,則8253的計數(shù)值應(yīng)為 5(1.5MHz300KHz) ,應(yīng)選用的工作方式是 3 。9.4 按要求編寫8253初始化程序,對應(yīng)計數(shù)器02和控制字的I/O端口地址為204H207H。(1)使計數(shù)器1工作在方式0,僅用8位二進(jìn)制計數(shù),初值為128。(2)使計數(shù)器0工作在方式1,按BCD碼計數(shù),計數(shù)值為3000。(3)使計數(shù)器2工作在方式2,計數(shù)值為02F0H。解:(1)

34、 MOV AL,01010000B ;即50HMOV DX,207HOUT DX,ALMOV AL,128 ;或80HMOV DX,205HOUT DX,AL (2) MOV AL,00100011B ;即23H,或用33H初值3000HMOV DX,207HOUT DX,ALMOV AL,30H;僅送高8位MOV DX,204HOUT DX,AL (3)MOV AL,10110100B ;即0B4HMOV DX,207HOUT DX,ALMOV DX,206HMOV AX,02F0HOUT DX,AL MOV AL,AHOUT DX,AL 9.5 設(shè)8255計數(shù)器02和控制字的I/O地址依次

35、為F8HFBH,說明如下程序的作用。 mov al, 33h ;0011 0011out 0fbh, almov al, 80hout 0f8h, almov al, 50hout 0f8h, al解:計數(shù)器0工作在方式1,BCD碼計數(shù),計數(shù)值5080D。9.7 解: 例題9.2中CLK0實際輸入101個下降沿后產(chǎn)生中斷,還能用工作方式1、4、5。如果利用外部信號啟動計數(shù),則GATE0應(yīng)從 +5v 0v +5v。若采用計數(shù)器0方式1的控制字為:00 01 001 0 B= 12H 。(初始化程序類似p.226 例9.2。)MOV AL,12H ;計數(shù)器0方式1MOV DX,203HOUT DX

36、,ALMOV DX,200HMOV AL,100OUT DX,AL 題9.8解:先計算計數(shù)器0的初值,N=輸入f /輸出f =5MHz /1KHz=5000計數(shù)器0的方式控制字:00 10 010 1 N= 5000 用BCD計數(shù)計數(shù)器1的方式控制字:01 11 100 0 N=1000=3E8H 計數(shù)器0初始化程序:OUT1OUT0CLK0CLK182535MHzIRQ4MOV DX,0FFF3HMOV AL,25H;OUT DX,AL1KHzMOV AL,50HMOV DX,0FFF0HOUT DX,AL(或方式控制字0011 0100,初值5000) mov dx,0fff3hmov a

37、l,34hout dx,almov dx,0fff0hmov ax,5000out dx,almov al,ah;先低后高out dx,al計數(shù)器1初始化程序:MOV DX,0FFF3HMOV AL,78H ;01 11 100 0OUT DX,ALMOV AX,3E8H MOV DX,0FFF1HOUT DX,ALMOV AL,AH;先低后高OUT DX,AL(或方式控制字01 10 100 1,初值1000D,用BCD計算只送高字節(jié))mov al, 69hmov dx, 0fff3hout dx, almov dx, 0fff1hmov al, 10hout dx, al補(bǔ)充: (此處題目

38、不需要進(jìn)行8259A的初始化)IRQ4的中斷向量為0CH,若需要設(shè)置8259A的初始化如下:MOV AL,13H;ICW1OUT 20H,ALMOV AL,08H;ICW2OUT 21H,ALMOV AL,07H;ICW4OUT 21H,AL 對應(yīng)中斷屏蔽字為11101111,中斷屏蔽位設(shè)置程序:IN AL,21H;讀出IMRAND AL,0EFH;設(shè)置允許IRQ4 ,其它位不影響OUT 21H,AL;再寫入IMR 即OCW1#9.9 揚(yáng)聲器控制發(fā)音程序:子程序speaker、speakon、speakoff參見p.223解:.DATAaddr DW 2277,2029,1808,1709 D

39、W 1522,1356,1196,1139 .CODEMOVAX, DATAMOV DS, AXkeyin:MOVAH,1INT21H;等待按鍵CMP AL,1BH;是否ESCJZexitCMPAL,31HJLstop; 8ANDAL,0FH;截取數(shù)18DECAL;成為07SHLAL;因為DW,*2LEABX,addr;數(shù)據(jù)表起始地址MOVAH,0ADDBX,AXMOVAX,BXCALLspeakerCALLspeakonJMPkeyinstop:CALLspeakoffJMPkeyinexit:MOVAX,4C00HINT21H9.10計數(shù)器的定時長度和精度受脈沖輸入信號頻率和計數(shù)值影響。對

40、于頻率為f的脈沖輸入,計數(shù)器輸出的最小定時時間為 2/f ;此時計數(shù)初值應(yīng)為 1 。16位計數(shù)器輸出的最大定時時間是 65537/f ;當(dāng)需要加大定時時間時,或者利用硬件方法進(jìn)行多個計數(shù)器的級聯(lián);或者用軟件輔助方法,使計數(shù)單元擴(kuò)大計數(shù)值。=10.2 什么是8237的單字節(jié)傳送方式和數(shù)據(jù)塊傳送方式,兩者的根本區(qū)別是什么?數(shù)據(jù)塊傳送方式和請求傳送方式對DREQ信號有效有什么要求?答:單字節(jié)傳送方式:以DMA方式每傳送完一個字節(jié),8237使HRQ(總線請求)信號無效,將系統(tǒng)總線交還CPU,若所有數(shù)據(jù)未傳完,則DREQ(外設(shè)的DMA傳送請求)保持有效,所以,8237立刻向CPU申請總線,使HRQ再次有

41、效,若CPU應(yīng)答了這次請求(HLDA有效),8237就傳送下一個字節(jié),這個過程重復(fù)到所有數(shù)據(jù)傳送完畢。 塊傳送:一旦傳送開始,8237就不放棄總線,直到所有數(shù)據(jù)傳送完畢。二者的區(qū)別:前者在每傳送一個字節(jié)后,CPU都有一次獲得總線的機(jī)會,以感知其他事件。后者不行,但速度較快。數(shù)據(jù)塊傳送對DREQ信號有效的要求是:傳送期間始終保持。請求傳送對DREQ信號有效的要求是:可以隨時失效來暫停傳送。10.4 8237有幾種對其DMA通道屏蔽位操作的方法?答:p238。三個:單通道屏蔽字、主屏蔽字、清屏蔽寄存器命令。10.5 PC機(jī)為什么設(shè)置DMA傳送的頁面寄存器?答:因為PC機(jī)的內(nèi)存空間大于8237的地址

42、控制范圍(64K),要在高于64K的空間進(jìn)行DMA傳送就必須用輔助器件產(chǎn)生高位(A16以上)地址,這個輔助器件就是頁面寄存器。10.6 設(shè)置PC機(jī)8237通道2傳送1KB數(shù)據(jù),請給出其字節(jié)數(shù)寄存器編程。解:MOV AX,1023 ;N-1OUT 05H,ALMOV AL,AHOUT 05H,AL10.8 PC機(jī)8237A通道2傳送的內(nèi)存起始地址為C8020H,請給出地址寄存器編程。解:MOV AL,20HOUT 04H,ALMOV AL,80HOUT 04H,ALMOV AL,0CHOUT 81H,AL;參見p.239表10.9 XT機(jī)執(zhí)行了下面兩條指令后,會產(chǎn)生什么作用?mov al, 47

43、h ;01 0 0 01 11out 0bh, al解:從端口地址0BH可知,這是方式寄存器;這兩條指令執(zhí)行后對通道3進(jìn)行了方式設(shè)置,具體為:以單字節(jié)模式、地址遞增、禁止自動初始化、在通道3上進(jìn)行DMA寫。10.10 題略,參見p.242;寄存器地址參見p.234表10-2解: MOVDX, 0CH;指向 高/地觸發(fā)器MOVAL, 0OUTDX, AL;清除高/地觸發(fā)器MOVDX, 09H;指向 請求寄存器OUTDX, AL;MOVAX, 01ORAX, SIMOVDX, 0BH;指向 方式寄存器 OUTDX, AL;設(shè)置工作方式MOVAX, ES;取段地址MOVCL, 04 ROLAX, C

44、L;左移4位MOVCH, AL;暫存高位地址ANDAL, 0F0H;屏蔽掉高位,取有效的低位ADDAX, BX;加上偏移地址JNCNET1;有進(jìn)位則INCCH;高位加1NET1:MOVDX, 02;指向通道1的地址寄存器OUTDX, ALMOV AL, AHOUT DX, ALMOV AL, CHANDAL, 0FHMOV DX, 83H;指向 通道1的頁面寄存器OUT DX, ALMOVAX, DI;NDEC AX;N-1MOVDX, 03;指向 通道1的字節(jié)數(shù)寄存器OUTDX, AL;寫入計數(shù)值低8位MOV AL, AHOUT DX, AL;寫入計數(shù)值高8位 MOVDX, 0AH;指向 單

45、通道屏蔽字MOVAL,1OUTDX, ALMOV DX,8;指向 命令寄存器MOVAL,60H;01100000OUT DX, ALMOVDX,08H;指向 狀態(tài)寄存器NET2:INAL,DX;讀入狀態(tài)字ANDAL,02H;判通道1傳送結(jié)束否,D1=1?JZNET2;沒有結(jié)束繼續(xù)讀入狀態(tài)答:若主機(jī)通過通道1發(fā)送數(shù)據(jù),相當(dāng)于進(jìn)行DMA讀,若采用請求模式,此時SI可以為09h;若采用單字節(jié)模式,SI為49h。若主機(jī)通過它接收數(shù)據(jù),相當(dāng)于進(jìn)行DMA寫,若采用請求模式,此時SI可以為05h;若采用單字節(jié)模式,SI為45h。=題11.2 8255兩組都定義為方式1輸入,則方式控制字是什么?方式控制字中的

46、另外兩位確定什么功能?解:方式控制字為1 01 1 X 1 1 Y,其中X、Y可取0或1,因為這兩位分別確定C端口的上部和下部的工作方式;本題中X位決定PC6和PC7的輸入輸出功能,Y位已無意義。11.3 總結(jié)8255A端口C的使用特點。答:1、8位并行輸入輸出。 2、高4位、低4位可分別輸入輸出。 3、按規(guī)定與端口A和端口B配合,完成相應(yīng)的握手信號。11.4 設(shè)定8255A的端口A為方式1輸入,端口B為方式1輸出,則讀取口C的數(shù)據(jù)的各位是什么含義?解答:讀取口C的數(shù)據(jù)各位的含義是:PC76為輸入信息或輸出鎖存信息(根據(jù)端口C上部的輸入/出定義);PC53為端口A的輸入緩沖器滿否、內(nèi)部觸發(fā)器狀

47、態(tài)、有否中斷請求信息。PC20為端口B的內(nèi)部觸發(fā)器狀態(tài)、輸出緩沖器滿否、有否中斷請求信息。(參見下圖)INTRBIOBFBINTEBINTRAINTEAIIBFAINTEAOOBFAD0D1D2D3D4D5D6D7INTRBOBFBINTEBINTRAINTEAIIBFAI/OI/O輸入緩沖器滿外設(shè)送入數(shù)據(jù)時的鎖存信號STBA(PC4腳的輸入)使其有效,CPU讀走數(shù)據(jù)時(RD的上升沿)使其失效??贏中斷請求輸出(PC4)允許口A中斷請求輸出腳(PC3)狀態(tài)口B中斷請求輸出(PC2)允許口B中斷請求輸出腳(PC0)狀態(tài)輸出緩沖器滿CPU寫入數(shù)據(jù)時(WR0)使其有效,外設(shè)取走數(shù)據(jù)時應(yīng)答信號ACKb(PC2腳的輸入)使其失效11.5 對8255A的控制寄存器寫入B0H,則其端口C的PC5引腳是什么作用的信號線?解: B0H = 10110000 B,可知8255A端口A工作于方式1輸入,所以PC5引腳的作用是IBFA,為1表示輸入緩沖器滿。11.6 節(jié)用8255A端口A方式0與打印機(jī)連接,如果采用端口B,其他不變,請說明應(yīng)該如何修改接口電

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論