第一篇:《微機(jī)原理與接口》復(fù)習(xí)題及參考答案_第二版(范文模版)
《微機(jī)原理與接口》課程復(fù)習(xí)題及參考答案
2013年12月
第一章習(xí)題
1.1 微處理器、微型計(jì)算機(jī)和微型計(jì)算機(jī)系統(tǒng)三者之間有什么不同?
【解】 把CPU(運(yùn)算器和控制器)集成在一個(gè)芯片上,即為微處理器。微處理器加上部分存儲(chǔ)器和外設(shè)(或外設(shè)接口)就構(gòu)成了微型計(jì)算機(jī)。微型計(jì)算機(jī)與管理、維護(hù)計(jì)算機(jī)硬件以及支持應(yīng)用的軟件相結(jié)合就形成微型計(jì)算機(jī)系統(tǒng)。1.2 CPU在內(nèi)部結(jié)構(gòu)上由哪幾部分組成?CPU應(yīng)該具備哪些主要功能?
【解】CPU主要由算術(shù)邏輯單元、指令寄存器、指令譯碼器、可編程邏輯陣列、寄存器組、標(biāo)志寄存器等組成。CPU主要功能是進(jìn)行算術(shù)邏輯運(yùn)算,以及控制計(jì)算機(jī)按照程序的規(guī)定自動(dòng)運(yùn)行。
1.3 微型計(jì)算機(jī)采用總線結(jié)構(gòu)有什么優(yōu)點(diǎn)?
【解】采用總線結(jié)構(gòu),擴(kuò)大了數(shù)據(jù)傳送的靈活性,減少了連線;而且總線可以標(biāo)準(zhǔn)化,易于兼容和工業(yè)化生產(chǎn)。
1.4 數(shù)據(jù)總線和地址總線在結(jié)構(gòu)上有什么不同之處?如果一個(gè)系統(tǒng)的數(shù)據(jù)和地址合用一組總線或者合用部分總線,那么要靠什么來(lái)區(qū)分地址和數(shù)據(jù)?
【解】數(shù)據(jù)總線是雙向的,地址總線是單向的。采用數(shù)據(jù)和地址線復(fù)用,主要靠信號(hào)的時(shí)序來(lái)區(qū)分。通常在讀寫(xiě)數(shù)據(jù)時(shí),在復(fù)用的總線上先輸出地址信息,然后再傳送數(shù)據(jù)。
第二章習(xí)題
2.9 8086的基本程序執(zhí)行寄存器是由哪些寄存器組成的? 【解】8086的基本程序執(zhí)行寄存器組成如下: ⑴ 8個(gè)通用寄存器:可用于存放操作數(shù)和指針。⑵ 4個(gè)段寄存器:保存段基值(或段選擇子)。⑶ 1個(gè)標(biāo)志寄存器:保存狀態(tài)位和控制標(biāo)志位。
⑷ 1個(gè)指令指針寄存器:存放下一條要執(zhí)行的指令的指針。2.13 如何形成指令中的各種條件碼?
【解】指令中的條件碼,即標(biāo)志寄存器中的狀態(tài)標(biāo)志。它們主要由算術(shù)和邏輯運(yùn)算指令設(shè)置或清除。也有設(shè)置和清除某些狀態(tài)標(biāo)志位的專用指令。
2.16 段寄存器CS=1200H,指令指針寄存器IP=FF00H,此時(shí),指令的物理地址為多少?
【解】指令的物理地址 = 1200H×16 + FF00H = 21F00H 2.17 8086微處理器的執(zhí)行部件有什么功能?由哪幾部分組成?
【解】8086微處理器的執(zhí)行部件負(fù)責(zé)指令的執(zhí)行。它主要由算術(shù)邏輯單元、標(biāo)志寄存器和通用寄存器等部分組成。
第三章習(xí)題1 3.11 8086匯編語(yǔ)言指令的尋址方式有哪幾類(lèi)?哪一種尋址方式的指令執(zhí)行速度最快?
【解】尋址方式分為:立即數(shù)尋址、寄存器尋址和存儲(chǔ)器尋址方式。其中,寄存器尋址方式的指令執(zhí)行速度最快。
3.12 在直接尋址方式中,一般只指出操作數(shù)的偏移地址,那么段地址如何確定?如果要用某個(gè)段寄存器指出段地址,在指令中應(yīng)該如何表示?
【解】默認(rèn)的數(shù)據(jù)訪問(wèn),操作數(shù)在DS段;堆棧操作數(shù)在SS段;串操作的源操作數(shù)(SI)在DS段,目的操作數(shù)(DI)在ES段。如果要顯式地指定段地址,則在操作數(shù)中規(guī)定段寄存器(段超越)。例如:MOV AX,ES:[1000H]
3.13在寄存器間接尋址方式中,如果指令中沒(méi)有具體指明段寄存器,那么如何確定段地址?
【解】根據(jù)所使用的寄存器,隱含地規(guī)定了默認(rèn)的段寄存器。IP:默認(rèn)CS段;SP、BP:默認(rèn)SS段;AX、BX、CX、DX、SI、DI:默認(rèn)DS段。
允許段超越,例如:MOV ES:[BX],AX
第三章習(xí)題2 3.1 分別指出下列指令中的源操作數(shù)和目的操作數(shù)的尋址方式。
(1)MOV SI,300(3)ADD AX,[BX][SI] 【解】(1)SOPD是立即數(shù)尋址,DOPD是寄存器尋址。
(3)SOPD是基址加變址尋址,DOPD是寄存器尋址。
3.2 試述指令 MOV AX,2000H 和 MOV AX,DS:[2000H] 的區(qū)別。
【解】前一條指令是立即數(shù)尋址,即將立即數(shù)2000H送至AX;后一條指令是存儲(chǔ)器直接尋址,是將存儲(chǔ)器DS:[2000H]單元中的內(nèi)容送至AX。3.4 判斷下列指令書(shū)寫(xiě)是否正確。
(1)MOV AL,BX(4)MOV 5,AL 【解】(1)不正確,AL與BX數(shù)據(jù)寬度不同
(4)不正確,立即數(shù)不能作為目的操作數(shù)。
3.5 設(shè)堆棧指針SP的初值為1000H,AX=2000H,BX=3000H,試問(wèn):
(1)執(zhí)行指令 PUSH AX 后,SP的值是多少?
(2)再執(zhí)行 PUSH BX 及 POP AX 后,SP、AX和BX的值是多少? 【解】(1)SP=0FFEH(2)SP=0FFEH,AX=3000H,BX=3000H 3.8 用兩種方法寫(xiě)出從80H端口讀入信息的指令,再用兩種方法寫(xiě)出從40H端口輸出100H的指令。
【解】從80H端口讀入信息的兩種分法:
(1)IN AL,80H(2)MOV DX,80H IN AL,DX 從40H端口輸出100H的兩種分法:
(1)MOV AX,100H(2)MOV AX,100H OUT 40H,AX MOV DX,40H OUT DX,AX
第三章習(xí)題3 3.23 兩種循環(huán)移位指令(帶CF的和不帶CF的)在執(zhí)行操作時(shí),有什么區(qū)別?在編制乘、除法程序時(shí),為什么常用移位指令來(lái)代替乘、除法指令?試編寫(xiě)一個(gè)程序段,實(shí)現(xiàn)將BX中的數(shù)乘以10,結(jié)果仍放在BX中的操作。【解】?jī)煞N指令的區(qū)別在于是否把標(biāo)志位的值放入循環(huán)中。左移1位相當(dāng)于乘2,右移1位除2。故左移和右移可實(shí)現(xiàn)乘2和除2的冪,且移位指令比乘除指令快得多。BX×10=BX×2+BX×8=BX×2+BX×23 SHL BX,1 MOV AX,BX ;AX=BX×2 SHL BX,1 ;BX×4 SHL BX,1 ;BX×8 ADD BX,AX ;BX=BX×8+BX×2=BX×10
3.25 用串操作指令設(shè)計(jì)實(shí)現(xiàn)如下功能的程序段:首先將100H個(gè)數(shù)從2170H處轉(zhuǎn)移到1000H處;然后,從中搜索出與AL中字符相等的單元,并將此單元的值換成空格符?!窘狻?/p>
MOV SI,2170H MOV DI,1000H MOV CX,100H CLD REP MOVSB MOV DI,1000H MOV CX,100H
MOV AL,‘*’
NEXT:SCASB JZ N1 LOOP NEXT HLT N1: MOV [DI-1],20H JMP NEXT HLT
3.26 在使用條件轉(zhuǎn)移指令時(shí),特別要注意它們均為相對(duì)轉(zhuǎn)移指令,請(qǐng)解釋“相對(duì)轉(zhuǎn)移”的含義。如果要向較遠(yuǎn)的地方進(jìn)行條件轉(zhuǎn)移,那么程序中應(yīng)該怎樣設(shè)置? 【解】相對(duì)轉(zhuǎn)移即為相對(duì)于指令指針的轉(zhuǎn)移。通常,偏移量是8位數(shù),是短轉(zhuǎn)移;要向較遠(yuǎn)的地方進(jìn)行條件轉(zhuǎn)移,可以先轉(zhuǎn)到附近,再無(wú)條件轉(zhuǎn)向目的地。
3.29 在執(zhí)行中斷返回指令I(lǐng)RET和普通子程序返回指令RET時(shí),具體操作內(nèi)容有什么不同?
【解】IRET除了彈出中斷要返回的地址(CS和IP)外,還要恢復(fù)中斷前的標(biāo)志寄存器。
第四章習(xí)題1 4.1 在下列程序運(yùn)行后,給相應(yīng)的寄存器及存儲(chǔ)單元填入運(yùn)行的結(jié)果: MOV AL,10H ;AL=10H MOV CX,1000H ;CX=1000H MOV BX,2000H ;BX=2000H MOV [CX],AL ;(1000H)=10H XCHG CX,BX ;BX=1000H, CX=2000H MOV DH,[BX] ;DH=10H MOV DL,01H ;DL=01H XCHG CX,BX ;BX=2000H, CX=1000H MOV [BX],DL ;(2000H)=01H HLT 【解】AL=10H;BX=2000H;CX=1000H;DX=1001H;
(1000H)=10H;(2000H)=01H
4.4 利用變址寄存器,編寫(xiě)一段程序,把自1000H單元開(kāi)始的100個(gè)數(shù)傳送到自1070H開(kāi)始的存儲(chǔ)區(qū)中?!窘狻?/p>
MOV SI, 1000H MOV DI, 1070H MOV CX, 100 CLD REP MOVSB HLT
4.10 把在題4.7中指定的數(shù)據(jù)塊中的正數(shù)傳送到自1000H開(kāi)始的存儲(chǔ)區(qū);而把其中的負(fù)數(shù)傳送到自1100H開(kāi)始的存儲(chǔ)區(qū)。分別統(tǒng)計(jì)正數(shù)和負(fù)數(shù)的個(gè)數(shù),分別存入1200H和1201H單元中?!窘狻?/p>
MOV SI, 0500H MOV DI, 1000H MOV BX, 1070H MOV CX, 100 MOV DX, 0 N1: MOV AL, [SI] TEST AL, 8000H ;測(cè)試符號(hào)位
JNZ N2 MOV [DI], AL INC DL ;正數(shù)的個(gè)數(shù)計(jì)數(shù) INC SI INC DI JMP N3 N2:MOV [BX], AL INC DH ;負(fù)數(shù)的個(gè)數(shù)計(jì)數(shù) INC SI INC BX N3:LOOP N1 MOV [1200H], DX HLT
4.11 自0500H單元開(kāi)始,有10個(gè)無(wú)符號(hào)數(shù),編寫(xiě)一個(gè)程序,求這10個(gè)數(shù)的和(用8位數(shù)運(yùn)算指令),把和放到050AH及050BH單元中(和用兩個(gè)字節(jié)表示),且高位在050B單元?!窘狻?/p>
MOV BX, 0500H MOV AX, 0 MOV CL, 10 N1: MOV DL, [BX] ADD AL, DL ADC AH, 0 INC BX DEC CL JNZ N1 MOV [050AH], AX HLT
第四章習(xí)題2 4.18 在0100H單元和010AH單元開(kāi)始,存放兩個(gè)各為10個(gè)字節(jié)的BCD數(shù)(地址最低處放的是最低字節(jié)),求它們的和,且把和存入0114H開(kāi)始的存儲(chǔ)單元中?!窘狻?/p>
LEA SI,[0100H] LEA DI, [0114H] CLC MOV CL, 10 N1: MOV AL, [SI] MOV BL, [SI+10] ADC AL, BL DAA MOV [DI], AL INC SI INC DI DEC CL JNZ N1
4.28 若從0200H單元開(kāi)始有100個(gè)數(shù),編寫(xiě)一個(gè)程序檢查這些數(shù),正數(shù)保持不變,負(fù)數(shù)都取補(bǔ)后送回?!窘狻?/p>
LEA BX, [0200H] MOV CX, 100 CHE: MOV AL, [BX] AND AL,AL JS MINUS INC BX JMP L1 MINUS:NEG AL MOV [BX], AL
INC BX L1: LOOP CHE HLT
4.37 若自0500H單元開(kāi)始有1000個(gè)帶符號(hào)數(shù),把它們的最小值找出來(lái),并且放在1000H單元中。【解】
LEA BX, [0500H]
MOV AX, [BX] INC BX INC BX MOV CX, 999 AGAIN: CMP AX, [BX] JL NEXT MOV AX, [BX] NEXT: INC BX INC BX
LOOP AGAIN
MOV [1000H], AX
HLT
第五章習(xí)題
5.1 總線周期的含義是什么?8086/8088CPU的基本總線周期由幾個(gè)時(shí)鐘周期組成?如果一個(gè)CPU的時(shí)鐘頻率為8MHz,那么,它的時(shí)鐘周期是多少?一個(gè)基本總線周期是多少?如果主頻為5MHz呢?
【解】CPU訪問(wèn)總線(對(duì)內(nèi)存單元或I/O端口讀/寫(xiě)一個(gè)字節(jié)或字)所需的時(shí)間稱為總線周期。8086/8088CPU的基本總線周期由4個(gè)時(shí)鐘周期組成。
主頻為8MHz時(shí),時(shí)鐘周期為1/8MHz=125ns,一個(gè)基本總線周期為500ns; 主頻為5MHz時(shí),時(shí)鐘周期為1/8MHz=200ns,一個(gè)基本總線周期為800ns。5.2 在總線周期的T1、T2、T3、T4狀態(tài),CPU分別執(zhí)行什么動(dòng)作?什么情況下需要插入等待狀態(tài)Tw?Tw在哪兒插入?怎樣插入? 【解】以存儲(chǔ)器讀為例說(shuō)明:
T1狀態(tài):輸出地址、地址鎖存、內(nèi)存和I/O端口訪問(wèn)控制信號(hào)等;
T2狀態(tài):CPU開(kāi)始數(shù)據(jù)傳送操作,將地址/數(shù)據(jù)復(fù)用線切換為傳輸數(shù)據(jù)狀態(tài),由總線控制器發(fā)出相應(yīng)的讀寫(xiě)控制信號(hào)及數(shù)據(jù)使能信號(hào);同時(shí)將高端地址/狀態(tài)復(fù)用線切換為狀態(tài)線,輸出狀態(tài)信息,指示具體操作; T3狀態(tài):其時(shí)鐘下降沿采樣READY信號(hào),若READY有效,則進(jìn)入T4狀態(tài);若READY無(wú)效,則插入等待狀態(tài)Tw,并在Tw的下降沿繼續(xù)采樣READY信號(hào)直到READY有效,轉(zhuǎn)入T4狀態(tài);
T4狀態(tài):CPU完成數(shù)據(jù)傳輸,狀態(tài)信號(hào)變?yōu)闊o(wú)操作的過(guò)渡狀態(tài),結(jié)束總線周期。CPU訪問(wèn)慢速的內(nèi)存或I/O端口時(shí),不能在基本總線周期內(nèi)完成數(shù)據(jù)傳輸,需要插入等待狀態(tài)Tw,在T3狀態(tài)對(duì)READY信號(hào)采樣,READY無(wú)效時(shí)插入Tw。
5.3 8086CPU和8088CPU是怎樣解決地址線和數(shù)據(jù)線的復(fù)用問(wèn)題的?ALE#信號(hào)何時(shí)處于有效電平
【解】8086/8088CPU利用分時(shí)時(shí)序信號(hào)解決地址線和數(shù)據(jù)線的復(fù)用問(wèn)題。在總線周期的T1狀態(tài)在復(fù)用線上輸出地址信號(hào)及地址鎖存信號(hào)ALE#,供外部電路鎖存地址信息;從T2狀態(tài)開(kāi)始將復(fù)用線切換為數(shù)據(jù)狀態(tài),用于傳送數(shù)據(jù)。
6.4 若要擴(kuò)充1KB RAM(用2114芯片),規(guī)定地址為8000H~83FFH,地址線應(yīng)該如何連接? 【解】擴(kuò)充1KB RAM至規(guī)定的地址8000H~83FFH,其地址線的低10位地址A9~A0直接連接2114芯片,高6位地址A15~A10置為100000B。
第七章習(xí)題
7.1 外部設(shè)備為什么要通過(guò)接口電路和主機(jī)系統(tǒng)連接?
【解】外設(shè)這類(lèi)多,傳輸信息可能是數(shù)字量或模擬量,且傳輸速度、時(shí)序、電平、功率等與CPU不兼容,通常需要接口電路完成兩者之間的轉(zhuǎn)換與匹配。
7.5 什么叫端口?通常有哪幾類(lèi)端口?計(jì)算機(jī)對(duì)I/O端口編址時(shí)通常采用哪兩種方法?在8086/8088系統(tǒng)中,用哪種方法對(duì)I/O端口進(jìn)行編址? 【解】端口是信息輸入或輸出的通路;通常有數(shù)據(jù)端口、狀態(tài)端口和控制端口等。在計(jì)算機(jī)中用地址來(lái)區(qū)分不同的端口,采用兩種編址方法:存儲(chǔ)器對(duì)應(yīng)的(存儲(chǔ)器映像方式)和端口尋址的輸入輸出方式(隔離I/O方式)。8086/8088系統(tǒng)中,采用隔離I/O方式。7.7 CPU和外設(shè)之間的數(shù)據(jù)傳輸方式有哪幾種?實(shí)際選擇某種傳輸方式時(shí),主要依據(jù)是什么?
【解】CPU與外設(shè)之間的數(shù)據(jù)傳送方式主要有三種:查詢傳送方式、中斷傳送方式和直接數(shù)據(jù)通道(DMA)傳送方式。具體采用哪種傳送方式,主要依據(jù)數(shù)據(jù)傳送的速度和數(shù)量。外設(shè)速度較慢或要求實(shí)時(shí)處理時(shí),可采用中斷傳送方式;外設(shè)速度與CPU相當(dāng)時(shí),可采用查詢傳送方式;要求傳送速度塊且是批量傳送時(shí),采用DMA傳送方式。
7.10 查詢方式有什么優(yōu)缺點(diǎn)?中斷傳送方式為什么能彌補(bǔ)查詢傳送方式的缺點(diǎn)?
【解】采用查詢傳送方式,CPU在外設(shè)有無(wú)數(shù)據(jù)時(shí)都要不斷查詢狀態(tài)信息,判斷是否可以傳送數(shù)據(jù),優(yōu)點(diǎn)是簡(jiǎn)單、可靠;缺點(diǎn)是效率低、速度慢。中斷傳送方式只有在外設(shè)準(zhǔn)備就緒后,需要傳送數(shù)據(jù)時(shí),才發(fā)出中斷申請(qǐng),CPU轉(zhuǎn)入中斷服務(wù)程序?qū)崿F(xiàn)數(shù)據(jù)傳送,CPU的工作效率高。
7.17 試說(shuō)明在DMA方式時(shí)由內(nèi)存向外設(shè)傳輸數(shù)據(jù)的過(guò)程。
【解】當(dāng)CPU響應(yīng)DMA請(qǐng)求發(fā)出HLDA信號(hào)后,DMA控制器獲得總線控制權(quán),向地址線發(fā)內(nèi)存地址,同時(shí)發(fā)讀寫(xiě)控制信號(hào),把內(nèi)存讀出的數(shù)據(jù)輸出至外設(shè)。然后判斷是否已經(jīng)傳送完畢。若未完,修改內(nèi)存地址,重復(fù)輸出過(guò)程,直至輸出完成,撤銷(xiāo)DMA請(qǐng)求,交還總線控制權(quán)給CPU。
第八章習(xí)題
8.4 什么叫中斷向量?它如何產(chǎn)生?如果1CH的中斷處理子程序從5110H:2030H開(kāi)始,則中斷向量表應(yīng)如何存放?
【解】中斷向量就是中斷服務(wù)程序的入口地址,所有的中斷向量存放在內(nèi)存空間的最低1KB區(qū)域(中斷向量表);通過(guò)CPU執(zhí)行指令時(shí)(軟件中斷)和響應(yīng)外部中斷時(shí)獲得的中斷類(lèi)型號(hào),尋址中斷向量表獲得中斷向量。中斷類(lèi)型號(hào)為1CH的中斷向量表地址=1CH×4=70H,低字存放IP值,高字存放CS值,即:(0070H)=30H,(0071H)=20H,(0072H)=10H,(0073H)=51H。
8.21 8086 CPU有哪幾種中斷?哪些是硬件中斷?哪些是軟件中斷? 【解】8086 CPU有兩類(lèi)中斷:
1、軟件中斷(內(nèi)部中斷),由指令的執(zhí)行所引起的(如:除法錯(cuò)、INT指令、INTO指令和單步執(zhí)行等);
2、硬件中斷(外部中斷),由外部的事件所引起的(如:非屏蔽中斷NMI、可屏蔽中斷INTR)。
第九章習(xí)題
9.2 計(jì)數(shù)器/定時(shí)器8253有哪幾種工作方式?各有何特點(diǎn)?其用途如何? 【解】計(jì)數(shù)器/定時(shí)器8253有以下6種工作方式:
方式0:計(jì)數(shù)結(jié)束中斷方式,計(jì)數(shù)結(jié)束時(shí)產(chǎn)生一個(gè)正跳變的中斷請(qǐng)求信號(hào),常用于事件計(jì)數(shù)功能,且只計(jì)數(shù)一次;
方式1:硬件可重觸發(fā)單脈沖方式,觸發(fā)后可產(chǎn)生一個(gè)寬度為n個(gè)時(shí)鐘周期的負(fù)脈沖,常用作門(mén)控信號(hào);
方式2:速率波發(fā)生器方式,產(chǎn)生n次分頻的周期信號(hào),且低電平時(shí)只有一個(gè)時(shí)鐘周期寬度,可用作一般分頻功能;
方式3:方波速率發(fā)生器方式,產(chǎn)生n次分頻的方波或近似方波的周期信號(hào),可用作一般分頻功能,常用于產(chǎn)生波特率時(shí)鐘信號(hào);
方式4:軟件觸發(fā)選通方式,在門(mén)控信號(hào)有效時(shí),寫(xiě)入一次計(jì)數(shù)初值,延遲n個(gè)時(shí)鐘周期產(chǎn)生一個(gè)單周期負(fù)脈沖,僅一次有效; 方式5:硬件件觸發(fā)選通方式,在寫(xiě)入計(jì)數(shù)初值后,門(mén)控信號(hào)每產(chǎn)生一個(gè)上跳沿,延遲n個(gè)時(shí)鐘周期產(chǎn)生一個(gè)單周期負(fù)脈沖,僅一次有效。
9.4 若已有一頻率發(fā)生器,其頻率為1MHz,若要求通過(guò)計(jì)數(shù)器/定時(shí)器8253,產(chǎn)生每秒一次的信號(hào),8253應(yīng)如何連接?編寫(xiě)出初始化程序。
【解】1MHz信號(hào)分頻1000000次產(chǎn)生1Hz信號(hào),一個(gè)計(jì)數(shù)通道最大的分頻系數(shù)為65536,需采用兩個(gè)通道級(jí)聯(lián)進(jìn)行分頻,每個(gè)通道各分頻1000次(計(jì)數(shù)初值1000=03E8H)。采用通道0和通道1級(jí)聯(lián),均工作在方式2,二進(jìn)制計(jì)數(shù),初始化程序段如下: MOV AL,34H OUT PORT3,AL ;PORT3為控制口地址 MOV AL,0E8H OUT PORT0,AL ;PORT0為通道0端口地址 MOV AL,03H OUT PORT0,AL MOV AL,74H OUT PORT3,AL ;PORT3為控制口地址 MOV AL,0E8H OUT PORT1,AL ;PORT1為通道1端口地址 MOV AL,03H OUT PORT1,AL
第十章習(xí)題
10.3 在輸入過(guò)程和輸出過(guò)程中,并行接口分別起什么作用?
【解】在輸入過(guò)程中:并行接口主要起輸入數(shù)據(jù)的緩沖或鎖存作用,并產(chǎn)生相應(yīng)的應(yīng)答控制信號(hào);在輸出過(guò)程中:并行接口主要起輸出數(shù)據(jù)的鎖存作用,并產(chǎn)生相應(yīng)的應(yīng)答控制信號(hào)
第十一章習(xí)題
11.1為什么串行接口部件中的4個(gè)寄存器可以1位地址進(jìn)行區(qū)分?
【解】串行接口部件中有兩類(lèi)端口:控制端口(控制字和狀態(tài)字)和數(shù)據(jù)端口,可用1位地址加以區(qū)分,而控制端口的控制字輸出和狀態(tài)字輸入以及數(shù)據(jù)端口的發(fā)送和接收可用讀或?qū)懖僮骺刂啤?/p>
11.6 設(shè)異步傳輸時(shí),每個(gè)字符對(duì)應(yīng)1位起始位、7位信息位、1位奇/偶校驗(yàn)位和1位停止位,如果波特率為9600,則每秒鐘能傳輸?shù)淖畲笞址麛?shù)是多少? 【解】因?yàn)槊總€(gè)字符幀的總位數(shù)=1+7+1+1=10位,波特率為:9600(位/秒),則最大可傳輸?shù)淖址麛?shù)為:9600÷10=960(個(gè))
第十二章習(xí)題
12.6 A/D轉(zhuǎn)換器接口電路一般完成哪些任務(wù)?
【解】A/D轉(zhuǎn)換器接口電路的輸入端為模擬信號(hào),通常需要經(jīng)過(guò)采樣、保持、量化、編碼四個(gè)步驟(即四項(xiàng)任務(wù)),將輸入的模擬量轉(zhuǎn)換成數(shù)字量。
第二篇:微機(jī)接口復(fù)習(xí)題
1、指令MOV AX,[BX][SI]中源操作數(shù)的尋址方式是()。A、寄存器間接尋址 B、變址尋址 C、相對(duì)尋址 D、基址變址尋址 2、8086 CPU內(nèi)有指示下條指令有效地址的指示器是()。A、IP B、SP C、BP D、SI
3、設(shè)串行異步傳送的數(shù)據(jù)格式是7個(gè)數(shù)據(jù)位、1個(gè)起始位,1個(gè)停止位、1個(gè)校驗(yàn)位,波特率為2400,則每秒鐘傳送的最大字符數(shù)為()A、100個(gè) B、120個(gè) C、10個(gè) D、240個(gè)
4、若8086 CPU主頻為8MHz,則其基本總線周期為(C)。A、200ns B、500ns C、125ns D、250ns 5、8253工作在哪幾種方式時(shí),可輸出1個(gè)時(shí)鐘周期寬度(1 CLK)的負(fù)脈沖(B)。A、方式0,4,5 B、方式2,4,5 C、方式1,2,4 D、方式0,2,4
6.CPU響應(yīng)INTR和NMI中斷時(shí),相同的必要條件是(D)。A、當(dāng)前總線空閑 B、允許中斷
C、當(dāng)前訪問(wèn)內(nèi)存結(jié)束 D、當(dāng)前指令執(zhí)行結(jié)束 7、8251A的操作命令字的作用是(D)。
A、決定8251A的數(shù)據(jù)傳送格式 B、決定8251A實(shí)際操作
C、決定數(shù)據(jù)傳送方向 D、決定8251A何時(shí)收/發(fā)數(shù)據(jù) 8、8086/8088中除()兩種尋址方式外,其它各種尋址方式的操作數(shù)均在存儲(chǔ)器中。A、立即尋址和直接尋址 B、寄存器尋址和直接尋址 C、立即尋址和寄存器尋址 D、立即尋址和間接尋址
9、設(shè)8259A當(dāng)前最高優(yōu)先級(jí)為IR5,若要使下一循環(huán)IR2為最低優(yōu)先級(jí),則OCW2應(yīng)設(shè)為()。A、01100010 B、11100000 C、11000010 D、11100010
10、設(shè)置特殊屏蔽方式的目的是(C)。A、屏蔽低級(jí)中斷 B、響應(yīng)高級(jí)中斷 C、響應(yīng)低級(jí)中斷 D、響應(yīng)同級(jí)中斷
11、設(shè)8255A的方式選擇控制字為9BH,其含義是(B)。A、A、B、C口全為輸出 B、A、B、C口全為輸入 C、A、B口為方式0且輸出 D、以上都不對(duì) 12、8086CPU的地址總線有()位。
A、8 B、16 C、20 D、24
13、執(zhí)行PUSH AX指令后,堆棧指針SP的內(nèi)容()。A、減1 B、減2 C、加1 D、加2
14、下列指令中,不影響進(jìn)位的指令是()。
A、ADD AX,BX B、MUL BL C、INC BX D、SUB AL,BH
15、下列指令語(yǔ)法有錯(cuò)的是()。
A、MOV AX,1000H B、MOV AX,BXC、MOV [AX],[1000H] D、MOV AX,[1000H] 15.8086CPU從I/O端口地址 80H讀字節(jié)數(shù)據(jù)應(yīng)使用指令()A: IN AL, 80H B: IN AX, 80H C: IN 80H, AL D: IN 80H, AX 16.若要使寄存器AL中的高 4 位不變, 低 4 位全為 1 , 使用指令().1 A: AND AL, 0FH B: AND AL, 0F0H C: OR AL, 0FH D: OR AL, 0F0H 17.指令代碼的地址存放在寄存器中。
A. DS和SI B.BX和BP C.ES和DI 18.8086CPU可尋址訪問(wèn)的最大I/O空間為。
D.CS和IP(A)1KB(B)64KB(C)640KB(D)1MB 19.8086CPU把1MB空間劃分為若干邏輯段,每段最多可含的存儲(chǔ)單元。A.1KB B.8KB C.16KB 20.8086CPU中指令指針寄存器(IP)中存放的是。
D.64KB(A)指令(B)指令偏移地址(C)操作數(shù)(D)操作數(shù)偏移地址 21.8086CPU中的SP寄存器的位數(shù)是。(A)8位(B)16位
(C)20位
(D)
24位
22.某數(shù)存于內(nèi)存數(shù)據(jù)段中,已知該數(shù)據(jù)段的段基址為2000H,而數(shù)據(jù)所在單元的偏移地址為0220H,該數(shù)據(jù)在內(nèi)存的物理地址為()。
A.02220H B.20220H C.22200H D.04200H 23.8255PA口工作在方式2,PB口工作在方式0時(shí),其PC口()。A、兩個(gè)4位I/O端口 B、一個(gè)8位I/O端口 C、部分作聯(lián)絡(luò)線 D、全部作聯(lián)絡(luò)線
24.定時(shí)與計(jì)數(shù)器8253的所有工作方式中,能產(chǎn)生周期方波的是方式()。A.2 B.3 C.4 D.5 25.已知BX=2000H,DS=1000H,(12000H)=34H,端口(2000H)=45H,問(wèn)執(zhí)行完指令MOV AL,(BX)后AL的內(nèi)容是()。
A.34H B.45H C.34 D.2000H 26.8259A工作在8086/8088模式時(shí),初始化命令字ICW2用來(lái)設(shè)置。
A.中斷向量地址的高8 位
C.中斷向量的高5位 B.中斷類(lèi)型號(hào)地址的高5位 D.中斷類(lèi)型號(hào)的高5位
27.CPU可以對(duì)8253計(jì)數(shù)器進(jìn)行讀操作,其讀到的是()。
A.工作方式字
B.計(jì)數(shù)初值
C.計(jì)數(shù)執(zhí)行部件CE(減一計(jì)數(shù)單元)的當(dāng)前值 D.0 28.8255的A口工作在方式1輸入時(shí),其中斷允許控制位INTE的開(kāi)/關(guān)是通過(guò)對(duì)的按位置位/復(fù)位操作完成的。
A.PC0 B.PC2
C.PC4
D.PC6
29.可編程通信接口芯片8251A()。
A.可用作并行接口 B.僅可用作異步串行接口 D.可用作同步、異步串行接口 C.僅可用作同步串行接口
30.異步串行通信中,收發(fā)雙方必須保持()。
A.收發(fā)時(shí)鐘相同 B.停止位相同
C.數(shù)據(jù)格式和波特率相同
D.以上都正確
31.8251A的方式控制字(即模式字)的作用是()。
A.決定8251的數(shù)據(jù)格式 B.決定8251的數(shù)據(jù)格式和傳送方向 C.決定8251何時(shí)收發(fā) D.以上都不對(duì) 32.若8255A接口芯片的A口工作在方式2時(shí),B口可以工作在()。A.方式0 B.位控方式 C.方式2 D.方式0或方式1 33.由()引腳的連接方式可以確定8255的端口地址。
A.RD、CSB.WR、A0C.A0、A1D.A0、A1、CS
34.I/O接口電路中,8255控制口可能使用的端口地址只能是(D)。A.00HB.01HC.04HD.07H 1.電子計(jì)算機(jī)主要由、、、和等五部分組成。2.總線按其功能可分、和三種不同類(lèi)型的總線。
3.8086/8088系統(tǒng)中,可以有個(gè)段起始地址,任意相鄰的兩個(gè)段起始地址相距個(gè)存儲(chǔ)單元。4.用段基值及偏移量來(lái)指明內(nèi)存單元地址的方式稱為。5.用BP作基址變址尋址時(shí),操作數(shù)所在的段是當(dāng)前。6.條件轉(zhuǎn)移指令JNE的條件是ZF=。
7.假設(shè)VAR為數(shù)據(jù)段中已定義的變量,則指令MOV BX,OFFSET VAR中源操作數(shù)的尋址方式是。8.CPU響應(yīng)8259A中斷,在引腳上輸出個(gè)負(fù)脈沖,在第個(gè)負(fù)脈沖期間讀入中斷類(lèi)型碼。9.數(shù)據(jù)輸入/輸出的四種方式是、、和。
10.如果串行傳輸速率是2400波特,則數(shù)據(jù)位的時(shí)鐘周期是秒。
11.設(shè)串行異步傳送的數(shù)據(jù)格式是7個(gè)數(shù)據(jù)位、1個(gè)停止位、1個(gè)校驗(yàn)位,波特率為2400,則每秒鐘傳送的最大字符數(shù)為個(gè)。
12.為使傳送過(guò)程更可靠,在串行異步通信接口中設(shè)立了三種出錯(cuò)標(biāo)志,分別是、和奇偶錯(cuò)。13.串行通信根據(jù)其連接方式的不同可分為單工、和等三種。
14.8251A工作于異步方式,收發(fā)時(shí)鐘頻率為38.4KHz,波特率為2400。數(shù)據(jù)格式為7位數(shù)據(jù)位,1位停止位,偶校驗(yàn),則8251A的方式字為。
15.8259A共有___個(gè)可編程的寄存器,它們分別用于接受CPU送來(lái)的______命令字和________命令字。
16.已知(BX)=7830H,CF=1,執(zhí)行指令:ADC BX,87CFH之后,(BX)=__________,標(biāo)志位的狀態(tài)分別為CF=_____,ZF=_____,OF=_____,SF=______。
17.設(shè)8086系統(tǒng)中采用單片8259A,其8259A的ICW2=32H,則對(duì)應(yīng)IR5的中斷類(lèi)型號(hào)為_(kāi)___________H.18.總線管理器8259占用個(gè)端口地址。8255有個(gè)8位的端口。8253有種工作方式。
19.某微型計(jì)算機(jī)測(cè)控系統(tǒng)有一DAC0832和一ADC0809芯片,DAC0832的作用為_(kāi)_____________,ADC0809的作用為_(kāi)_____________。
20.在8086CPU的寄存器組中,在對(duì)存儲(chǔ)器單元進(jìn)行間接尋址時(shí),可作為基址寄存器的為、,用于變址寄存器有、;對(duì)I/O端口地址進(jìn)行訪問(wèn)時(shí),用到的間址寄存器為。21.在指令MOV AL,[SI+10H]中,源操作數(shù)采用的尋址方式為。
22.已知某內(nèi)存單元的段地址和偏移地址分別為2010H和0130H,此內(nèi)存單元的物理地址為_(kāi)__________。
23.已知:DS=1000H,BX=0200H,SI=02H,內(nèi)存10200H~10205H單元的內(nèi)容分別為10H,2AH,3CH,46H,59H,6BH。則CPU執(zhí)行以下指令后:MOV AX,[BX+SI] ;所訪問(wèn)的存儲(chǔ)單元的物理地址______________,AX寄存器的內(nèi)容為_(kāi)_____________。
24.8255A端口C按位置位復(fù)位控制字的_________位用來(lái)指定要置位或復(fù)位的端口C1的具體位置。25.8255A端口C按位置位復(fù)位控制字中的________位決定對(duì)端口C的某一位置位或復(fù)位。26.8255A的每個(gè)端口的數(shù)據(jù)寄存器的長(zhǎng)度為_(kāi)___位。27.Intel 8255A是一個(gè)________________________接口芯片。
28.8255A的端口C按位置位復(fù)位控制字的_________位用來(lái)指定置位或復(fù)位的端口C的具體位置.29.8255A的端口A工作在方式2時(shí),使用端口C的_________作為與CPU和外部設(shè)備的聯(lián)絡(luò)信號(hào)。30.8255A與CPU連接時(shí),地址線一般與CPU的地址總線的_________連接。31.8255A控制字的最高位D7=_________時(shí),表示該控制字為方式控制字。32.8255A的端口A的工作方式是由方式控制字的____位決定。33.8255A的端口B的工作方式由方式控制字的________位決定。
34.8255A的端口C的按位置位復(fù)位功能是由控制字中的D7=______來(lái)決定的。35.8255A內(nèi)部具有_____個(gè)輸入輸出接口。
36.8255A的三個(gè)端口中只有端口____沒(méi)有輸入鎖存功能。37.串行通信線路的工作方式有()、()和()三種。38.在串行通信中,數(shù)據(jù)的收發(fā)可采用()和()兩種基
本的工作方式。
39.用異步通信方式傳輸數(shù)據(jù)時(shí),起始位為()電平,它的寬度為()位。40.用異步通信方式傳輸數(shù)據(jù)時(shí),以()電平作為起始位,以()
電平作為停止位。
41.異步通信方式中的停止位為()電平,寬度可選()種形式。
42.假設(shè)用異步通信方式傳輸數(shù)據(jù)時(shí),每個(gè)字符對(duì)應(yīng)1個(gè)起始位、7個(gè)數(shù)據(jù)位、采用偶校驗(yàn)和1個(gè)停止位,如果波特率為9600 bps,則每秒鐘能傳輸?shù)淖?大字符數(shù)為()個(gè)。
43.在串行通信的同步通信方式中,面向比特型的數(shù)據(jù)格式, 每幀數(shù)據(jù)由()
個(gè)部分組成。
44.串行接口芯片8251由()引腳輸入串行數(shù)據(jù)。45.串行接口芯片8251由()引腳輸出串行數(shù)據(jù)。46.可編程串行接口8251設(shè)置有()個(gè)錯(cuò)誤標(biāo)志。47.8251A的方式選擇控制字在()之后寫(xiě)入。
48.在數(shù)據(jù)通信中,半雙工通信在任意一個(gè)時(shí)刻只能進(jìn)行()方向的傳輸,而全雙工通信可以同時(shí)進(jìn)行()方向的傳輸。
第三篇:微機(jī)原理與接口技術(shù)(第二版)習(xí)題答案
第1章
1.1 微處理器、微型計(jì)算機(jī)和微型計(jì)算機(jī)系統(tǒng)三者之間有什么不同?
解:
把CPU(運(yùn)算器和控制器)用大規(guī)模集成電路技術(shù)做在一個(gè)芯片上,即為微
處理器。微處理器加上一定數(shù)量的存儲(chǔ)器和外部設(shè)備(或外部設(shè)備的接口)構(gòu)成了
微型計(jì)算機(jī)。微型計(jì)算機(jī)與管理、維護(hù)計(jì)算機(jī)硬件以及支持應(yīng)用的軟件相結(jié)合就形
成了微型計(jì)算機(jī)系統(tǒng)。
1.2 CPU在內(nèi)部結(jié)構(gòu)上由哪幾部分組成?CPU應(yīng)該具備哪些主要功能? 解:
CPU主要由起運(yùn)算器作用的算術(shù)邏輯單元、起控制器作用的指令寄存器、指
令譯碼器、可編程邏輯陣列和標(biāo)志寄存器等一些寄存器組成。其主要功能是進(jìn)行算
術(shù)和邏輯運(yùn)算以及控制計(jì)算機(jī)按照程序的規(guī)定自動(dòng)運(yùn)行。
1.3微型計(jì)算機(jī)采用總線結(jié)構(gòu)有什么優(yōu)點(diǎn)? 解:
采用總線結(jié)構(gòu),擴(kuò)大了數(shù)據(jù)傳送的靈活性、減少了連線。而且總線可以標(biāo)準(zhǔn)
化,易于兼容和工業(yè)化生產(chǎn)。
1.4數(shù)據(jù)總線和地址總線在結(jié)構(gòu)上有什么不同之處?如果一個(gè)系統(tǒng)的數(shù)據(jù)和地址合用
一套總線或者合用部分總線,那么要靠什么來(lái)區(qū)分地址和數(shù)據(jù)? 解:
數(shù)據(jù)總線是雙向的(數(shù)據(jù)既可以讀也可以寫(xiě)),而地址總線是單向的。
8086CPU為了減少芯片的引腳數(shù)量,采用數(shù)據(jù)與地址線復(fù)用,既作數(shù)據(jù)總線也作為
地址總線。它們主要靠信號(hào)的時(shí)序來(lái)區(qū)分。通常在讀寫(xiě)數(shù)據(jù)時(shí),總是先輸出地址
(指定要讀或?qū)憯?shù)據(jù)的單元),過(guò)一段時(shí)間再讀或?qū)憯?shù)據(jù)。
1.8在給定的模型中,寫(xiě)出用累加器的辦法實(shí)現(xiàn)15×15的程序。
DEC H
JP
NZ,LOOP
HALT
第 2章
作業(yè) 答案
2.1 IA-32結(jié)構(gòu)微處理器直至Pentillm4,有哪幾種? 解:80386、30486、Pentium、Pentium Pro、PeruiumII、PentiumIII、Pentium4。
2.6IA-32結(jié)構(gòu)微處理器有哪幾種操作模式? 解:
IA一32結(jié)構(gòu)支持3種操作模式:保護(hù)模式、實(shí)地址模式和系統(tǒng)管理模式。操
作模式確定哪些指令和結(jié)構(gòu)特性是可以訪問(wèn)的。
2.8IA-32結(jié)構(gòu)微處理器的地址空間如何形成?
解:
由段寄存器確定的段基地址與各種尋址方式確定的有效地址相加形成了線性地
址。若末啟用分頁(yè)機(jī)制,線性地址即為物理地址;若啟用分頁(yè)機(jī)制,則它把線性地
址轉(zhuǎn)為物理地址。
2.15 8086微處理器的總線接口部件由哪幾部分組成? 解:
8086微處理器中的總線接口單元(BIU)負(fù)責(zé)CPU與存儲(chǔ)器之間的信息傳
送。具體地說(shuō),BIU既負(fù)責(zé)從內(nèi)存的指定部分取出指令,送至指令隊(duì)列中排隊(duì)
(8086的指令隊(duì)列有6個(gè)字節(jié),而8088的指令隊(duì)列只有4個(gè)字節(jié));也負(fù)責(zé)傳送執(zhí)
行指令時(shí)所需的操作數(shù)。執(zhí)行單元(EU)負(fù)責(zé)執(zhí)行指令規(guī)定的操作。
2.16段寄存器CS=120OH,指令指針寄存器IP=FFOOH,此時(shí),指令的物理地址為
多少? 解:
指令的物理地址=12000H+FFOOH=21FOOH
第3章 作 業(yè)答案
3.1分別指出下列指令中的源操作數(shù)和目的操作數(shù)的尋址方式。
(1)MOV SI, 30O
(2)MOV CX, DATA[DI]
(3)ADD AX, [BX][SI]
(4)AND AX, CX
(5)MOV[BP], AX
(6)PUSHF
解:
(l)源操作數(shù)為立即尋址,目的操作數(shù)為寄存器尋址。
(2)源操作數(shù)為變址寄存器加位移量尋址,目的操作數(shù)為寄存器尋址。
(3)源操作數(shù)為基址加變址尋址,目的操作數(shù)為寄存器尋址。
(4)源操作數(shù)和目的操作數(shù)都為寄存器尋址。
(5)源操作數(shù)為寄存器尋址,目的操作數(shù)為寄存器間接尋址。
(6)為堆棧操作。
3.2試述指令MOVAX,2000H和MOV AX,DSz[2000H]的區(qū)別。
解:前一條指令是立即尋址,即把立即數(shù)2000H傳送至寄存器AX。后一條指令
是直接尋址,是把數(shù)據(jù)(DS)段中的地址為200OH單元的內(nèi)容傳送至寄存器AX。
3.3寫(xiě)出以下指令中內(nèi)存操作數(shù)的所在地址。
(1)MOV AL, [BX+10]
(2)MOV [BP+10], AX
(3)INC BYTEPTR[SI十5]
(4)MOV DL, ES:[BX+SI]
(5)MOV BX,[BP+DI+2] 解:
(1)數(shù)據(jù)段BX+10單元。
(2)堆棧段BP+10單元。
(3)數(shù)據(jù)段SI+5字節(jié)單元。
(4)附加段(ES段)BX+SI單元。
(5)堆棧段BP+DI+2單元。
3.4判斷下列指令書(shū)寫(xiě)是否正確。
(1)MOV AL, BX
(2)MOV AL, CL
(3)INC [BX]
(4)MOV 5, AL
(5)MOV [BX],[SI]
(6)M0V BL, OF5H
(7)MOV DX, 2000H
(8)POP CS
(9)PUSH CS
解:
(l)不正確,AL與BX數(shù)據(jù)寬度不同。
(2)正確。
(3)不正確,因?yàn)椴幻鞔_是增量字節(jié)還是字。
(4)不正確,立即數(shù)不能作為目的操作數(shù)。
(5)不正確,因?yàn)椴幻鞔_要傳送的是字節(jié)還是字。
(6)正確。
(7)正確。
(8)不正確,CS不能作為:pop指令的操作數(shù)。
(9)不正確,CS不能作為PUSH指令的操作數(shù)。
3.5設(shè)堆錢(qián)指針SP的初值為1000H,AX=2000H,BX=3000H,試問(wèn):
(1)執(zhí)行指令PUSHAX后SP的值是多少?
(2)再執(zhí)行PUSHBX及POPAX后,SP、AX和BX的值各是多少?
解:
(1)SP=OFFEH。
(2)SP=OFFEH;AX=3000H,BX=3000H。
3.6要想完成把[3000H]送[2000H]中,用指令:
MOM[200OH],[300OH]
是否正確?如果不正確,應(yīng)該用什么方法實(shí)現(xiàn)?
解:不正確。
正確的方法是:
MOV AL, [300OH]
MOV [2000H],AL
3.7假如想從200中減去AL中的內(nèi)容,用SUB200,AL是否正確?如果不正確,應(yīng)該
用什么方法?
解:不正確。
正確的方法是:
MOV BL, 200
SUB BL,AL
3.8試用兩種方法寫(xiě)出從8OH端口讀入信息的指令。再用兩種方法寫(xiě)出從4OH口輸
出10OH的指令。
解:
(1)IN AL, 80H
(2)MOV DX,8OH
IN AL, DX
(3)MOV,AL,lOOH
OUT40H,AL
4)MOV AL,10OH
MOV DX,4OH
OUT DX,AL
3.9假如:AL=20H,BL=1OH,當(dāng)執(zhí)行CMPAL,BL后,問(wèn):
(1)AL、BL中的內(nèi)容是兩個(gè)無(wú)符號(hào)數(shù),比較結(jié)果如何?影響哪兒個(gè)標(biāo)志位?
(2)AL、BL中的內(nèi)容是兩個(gè)有符號(hào)數(shù),結(jié)果又如何,影響哪幾個(gè)標(biāo)志位?
解:
(l)AL=2OH,BL=1OH,O=0,S=0,Z=0,A=0,P=0,C=0。
(2)因?yàn)閮蓚€(gè)都是符號(hào)正數(shù),其結(jié)果與(l)相同。
3.10若要使AL×10,有哪幾種方法,試編寫(xiě)出各自的程序段?
解:
(1)使用乘法指令:
MOVBL,10
MULBI,(2)使用移位指令:
SHLAL,1
MOVBL,AL
SHLAL,2
ADDAL,BL
(3)使用加法指令:
ADDAL,AL
MOVBL,AL
ADDAL,AL
ADDAL,AL
ADDAL,BL
3.118086匯編語(yǔ)言指令的尋址方式有哪幾類(lèi)?哪種尋址方式的指令執(zhí)行速度最快?
解:尋址方式分為:立即數(shù)尋址方式、寄存器操作數(shù)尋址方式和存儲(chǔ)器操作數(shù)尋
址方式。其中,寄存器操作數(shù)尋址方式的指令執(zhí)行速度最快。
3.12在直接尋址方式中,一般只指出操作數(shù)的偏移地址,那么,段地址如何確定?如
果要用某個(gè)段寄存器指出段地址,指令中應(yīng)該如何表示?
解:
默認(rèn)的數(shù)據(jù)訪問(wèn),操作數(shù)在DS段;堆棧操作在SS段;串操作源操作數(shù)(SI)在DS段, 目的操作數(shù)(DI)在ES段;用BP作為指針在SS段。如果要顯式地指定段地址,則在操
作數(shù)中規(guī)定段寄存器。例如:
MOVAX,ES:(BX+10H)
3.13在寄存器間接尋址方式中,如果指令中沒(méi)有具體指明段寄存器,那么如何確定
段地址?
解:
在寄存器間接尋址方式中,如果指令中沒(méi)有具體指明段寄存器,段地址是
隱含約定的,也就是隱含地選擇段寄存器。如操作類(lèi)型為指令,則指定代碼段寄
存器CS,如操作類(lèi)型為堆棧操作,則指定堆找段寄存器SS,…,如表3-1中所示。
當(dāng)需要超越約定時(shí),通常用段替代前綴加冒號(hào)“:”來(lái)表示段超越,它允許程序設(shè)
計(jì)者偏離任何約定的段。
例如:
MOV ES:〔BX],AX
這時(shí)數(shù)據(jù)將從寄存器EAX傳送至附加段中由EBX尋址的存儲(chǔ)單元,而不是傳送
到數(shù)據(jù)段中。
3.14采用寄存器間接尋址方式時(shí),BX、BP、SI、DI分別針對(duì)什么情況來(lái)使用?這4個(gè)
寄存器組合間接尋址時(shí),地址是怎樣計(jì)算的?請(qǐng)舉例說(shuō)明。
解: 在寄存器間接尋址方式下,BX和BP作為間址寄存器使用,而SI、DI作為
變址寄存器使用。除BP間址默認(rèn)的段為堆棧段,其他的都默認(rèn)為數(shù)據(jù)段。它們
都可以單獨(dú)使用,或加上偏移量或組合使用。如:
[BX+n]
LBP+n]
[SI+n]
[DI+n]
[BX+SI+n]
[BX+DI+n]
[BP+SI+n]
[BP+DI+n]
3.15設(shè)DS=2100H,SS=5200H,BX=1400H,BP=6200H,說(shuō)明下面兩條指令所進(jìn)行的具體操作:
MOVBYTEPTR[BP],200
MOVWORDPTR[BX],2000
解:前一條指令是把立即數(shù)(應(yīng)是字節(jié))200,傳送至堆棧段(BP的默認(rèn)段〉偏移
量由BP規(guī)定的字節(jié)單元,地址為:52000H+620OH=58200H
第二條指令是把立即數(shù).2000,傳送至數(shù)據(jù)段(BX的默認(rèn)段)偏移量由BX規(guī)定的字單元,地址為:21000H+1400H=22400H。
3.16使用堆錢(qián)操作指令時(shí)要注意什么問(wèn)題?傳送指令和交換指令在涉及內(nèi)存操作數(shù)
時(shí)應(yīng)該分別要注意什么問(wèn)題?
解:使用堆棧指令可以把內(nèi)存單元作為一個(gè)操作數(shù)(從內(nèi)存到內(nèi)存)。但堆棧
固定在堆棧段且只能由SP指向。且堆棧操作要修改堆核指針。MOV指令不能實(shí)
現(xiàn)內(nèi)存單元間的數(shù)據(jù)傳送。XCHG指令是交換,有一個(gè)操作數(shù)必須是寄存器。
3.17下面這些指令中哪些是正確的?哪些是錯(cuò)誤的?若是錯(cuò)誤的,請(qǐng)說(shuō)明原因。
(1)XCHG CS, AX
(2)MOV[BX], [1000]
(3)XCHGBX, IP
(4)PUSHCS
(5)POP CS
(6)IN BX, DX
(7)MOVBYTE[BX],100O
(8)MOVCS,[1000]
解:
(l)錯(cuò)誤,CS不能交換。
(2)錯(cuò)誤,MOV指令不能在內(nèi)存間傳送。
(3)錯(cuò)誤,IP不能交換。
(4)錯(cuò)誤,CS可以作為PUSH指令的操作數(shù)。
(5)錯(cuò)誤,CS可以作為POP指令的操作數(shù)。
(6)錯(cuò)誤,IN指令的目的操作數(shù)是累加器。
(7)錯(cuò)誤,目的操作數(shù)是字節(jié)單元。
(8〉錯(cuò)誤,CS不能作為MOV指令的目的操作數(shù)。
3.18 以下是格雷碼的編碼表,O 0000 0001
0011 0010 0110 0111 0101 0100 1100
請(qǐng)用換碼指令和其他指令設(shè)計(jì)一個(gè)程序段,以實(shí)現(xiàn)由格雷碼向ASCII碼的轉(zhuǎn)換。
解:
MOVBX,TABLE
MOVSI,ASCII_TAB
MOVAL,0
MOVCX,10 TRAN:XLATTABLE
MOVDL,AL
ADDDL,30H
MOV[SI],DL
INCAL
LOOPTRAN 3.19使用乘法指令時(shí),特別要注意先判斷是用有符號(hào)數(shù)乘法指令還是用無(wú)符號(hào)數(shù)乘
法指令,這是為什么?
解:因?yàn)橛蟹?hào)數(shù)和無(wú)符號(hào)數(shù),其數(shù)的乘法是一樣的。但結(jié)果的符號(hào)取決于兩
個(gè)操作數(shù)的符號(hào)。
3.20字節(jié)擴(kuò)展指令和字?jǐn)U展指令一般用在什么場(chǎng)合?舉例說(shuō)明。
解:主要用于字節(jié)相除和字相除之前,把被除數(shù)擴(kuò)展為兩倍寬度的操作數(shù)。
3.21 什么叫BCD碼?什么叫組合的BCD碼?什么叫非組合的BCD碼?8086匯編語(yǔ)言在對(duì)
BCD碼進(jìn)行加、減、乘、除運(yùn)算時(shí),采用什么方法?
解:BCD碼為十進(jìn)制編碼的二進(jìn)制數(shù)。組合的BCD數(shù)是把兩位BCD加在一個(gè)字節(jié)
中,高位的在高4位。非組合的BCD碼是把一位BCD數(shù)放在一個(gè)字節(jié)的低4位,高4位
為0。8086在BCD加、減和乘法運(yùn)算以后用BCD調(diào)整指令把結(jié)果調(diào)整為正確的BCD
數(shù)。在BCD除法之前先用BCD調(diào)整指令再做除法.3.22用普通運(yùn)算指令執(zhí)行BCD碼運(yùn)算時(shí),為什么要進(jìn)行十進(jìn)制調(diào)整?具體地講,在
進(jìn)行BCD碼的加、減、乘、除運(yùn)算時(shí),程序段的什么位置必須加上十進(jìn)制調(diào)整
指令?
解:因?yàn)?086指令把操作數(shù)作為二進(jìn)制數(shù)進(jìn)行二進(jìn)制運(yùn)算,要得到正確的BCD結(jié)
果,需要進(jìn)行調(diào)整。在加、減、乘法指令之后加上BCD調(diào)整指令,而在除法指令
之前先用BCD調(diào)整指令再用除法指令。
第4章
作業(yè)答案
4.1在下列程序運(yùn)行后,給相應(yīng)的寄存器及存儲(chǔ)單元填入運(yùn)行的結(jié)果:
MOV AL, 1OH
MOV CX, 100OH
MOV BX, 2000H
MOV [CX],AL
XCHGCX,BX
MOV DH, [BX]
MOV DL, 01H
XCHGCX, BX
MOV [BX],DL
HLT
解:寄存器及存儲(chǔ)單元的內(nèi)容如下:
AL=1OH
BL=OOH
BH=2OH
CL=OOH
CH=1OH
DH=1OH
(10O0H)=lOH
(200OH)=0lH 2.要求同題4.1,程序如下:
MOV AL, 50H
MOV BP, 100OH
MOV BX, 200OH
MOV[BP],AL
MOV DH, 20H
MOV[BX],DH
MOV DL, OlH
MOV DL, [BX]
MOV CX, 300OH
HLT
解:寄存器及存儲(chǔ)單元的內(nèi)容如下:
AL=5OH
BL=OOH
BH=20H
CL=OOH
CH=30H
DL=20H
DH=2OH
BP=100OH
(10OOH)=5OH
(20OOH)=20H
4.3自1000H單元開(kāi)始有一個(gè)100個(gè)數(shù)的數(shù)據(jù)塊,若要把它傳送到自200OH開(kāi)始的存
儲(chǔ)區(qū)中去,可以采用以下3種方法實(shí)現(xiàn),試分別編制程序以實(shí)現(xiàn)數(shù)據(jù)塊的傳送。
(l)不用數(shù)據(jù)塊傳送指令
(2)用單個(gè)傳送的數(shù)據(jù)塊傳送指令
(3)用數(shù)據(jù)塊成組傳送指令。
解:
(1)
LEA SI, 1OOOH
LEA DI, 200OH
MOV CX, 100
L1: MOV AX, [SI]
MOV[DI],AX
LOOPLl
HLT
(2)
LEASI,100OH
LEADI,2000H
MOVCX,100
CLD
L1: MOVSB
LOOP L1
HLT
(3)
LEASI, 100OH
LEADI, 200OH
MOVCX, 100
CLD
REP MOVSB
HLT
4.4 利用變址寄存器,編寫(xiě)一個(gè)程序,把自1000H單元開(kāi)始的100個(gè)數(shù)傳送到自1070H
開(kāi)始的存儲(chǔ)區(qū)中去。
解:
LEASI,100OH
LEADI,1070H
MOVCX,100
CLD
REP MOVSB
HLT
4.5要求同題4.4,源地址為2050H,目的地址為2000H,數(shù)據(jù)塊長(zhǎng)度為50.解:
LEASI,205OH
LEADI,200OH
MOVCX,50
CLD
REPMOVSB
HLT
4.6編寫(xiě)一個(gè)程序,把自100OH單元開(kāi)始的100個(gè)數(shù)傳送'至105OH開(kāi)始的存儲(chǔ)區(qū)中
(注意:數(shù)據(jù)區(qū)有重疊)。
解:
LEASI, 100OH
LEADI,1050H
ADDSI, 63H
ADDDI, 63H
MOVCX, 100
STD
REPMOVSB
HLT
4.7在自0500H單元開(kāi)始,存有100個(gè)數(shù)。要求把它傳送到1000H開(kāi)始的存儲(chǔ)區(qū)中,但在傳送過(guò)程中要檢查數(shù)的值,遇到第一個(gè)零就停止傳送。
解:
LEA SI, 050OH
LEA DI, 10OOH
MOV CX, 100
N1: MOV AL, [SI]
CMP AL, 0
JZ N2
MOV[DI],AL
INC SI
INC DI
LOOPN1
N2: HLT
4.14若在0500H單元中有一個(gè)數(shù)
(1)利用加法指令把它乘2,且送回原存儲(chǔ)單元(假定X×2后仍為一個(gè)字節(jié));
(2)X×4;
(3)X×10(假定X×l0≤255).解:
(1)LEA BX, 050OH
MOV AL, [BX]
ADD AL, AL
MOV[BX],AL
(2)LEA BX, 0500H
MOV AL, [BX]
ADD AL, AL
ADD AL, AL
MOV[BX],AL
(3)LEABX, 050OH
MOVAL, [BX]
ADDAL, AL
MOVDL, AL
ADDAL, AL
ADD AL,AL
ADDAL, DL
MOV[BX],AL
第 5 章
作業(yè)答案
5.1 總線周期的含義是什么?8086/8088CPU的基本總線周期由幾個(gè)時(shí)鐘組成?如果
一個(gè)CPU的時(shí)鐘頻率為8MHz,那么,它的一個(gè)時(shí)鐘周期是多少?一個(gè)基本總線周期是多
少?如果主頻為5MHz呢?
解:CPLI訪問(wèn)總線(從內(nèi)存儲(chǔ)器或I/0端口讀/寫(xiě)字節(jié)或字)所需的時(shí)間稱為總線周期。8086/8088CPU的基本總線周期由4個(gè)時(shí)鐘組成。若CPU的時(shí)鐘頻率為8(5)MHz,時(shí)
鐘周期為1/8MHz=125(1/5MHz=2O)ns,基本總線周期為4×125(200)ns=500(800)ns
5.2在總線周期的TI、T2、T3、T4狀態(tài),CPU分別執(zhí)行什么動(dòng)作?什么情況下需要插入
等待狀態(tài)Tw?Tw在哪兒插入?怎樣插入?
解: 下面以存儲(chǔ)器讀為例進(jìn)行說(shuō)明。
在Tl周期:輸出地址信號(hào)、地址鎖存允許信號(hào)、內(nèi)存或I/O端口訪問(wèn)控制信號(hào);
在T2周期:CPIJ開(kāi)始執(zhí)行數(shù)據(jù)傳送操作,此時(shí),8086CPU內(nèi)部的多路開(kāi)關(guān)進(jìn)行切換,將
地址/數(shù)據(jù)線AD15~AD0上的地址撤銷(xiāo),切換為數(shù)據(jù)總線,為讀寫(xiě)數(shù)據(jù)作準(zhǔn)
備。8288總線控制器發(fā)出數(shù)據(jù)總線允許信號(hào)和數(shù)據(jù)發(fā)送/接收控制信號(hào)
DT/R允許數(shù)據(jù)收發(fā)器工作,使數(shù)據(jù)總線與8086CPU的數(shù)據(jù)線接通,并控制數(shù)
據(jù)傳送的方向。同樣,把地址/狀態(tài)線A19/S6~A16/S3切換成與總線周期有
關(guān)的狀態(tài)信息,指示若干與周期有關(guān)的情況。
在T3周期:開(kāi)始的時(shí)鐘下降沿上,8086CPU采樣READY線。如果READY信號(hào)有效(高電平),則在T3狀態(tài)結(jié)束后進(jìn)人TA狀態(tài)。在T4狀態(tài)開(kāi)始的時(shí)鐘下降沿,把數(shù)據(jù)總線上的數(shù)據(jù)讀入CPU或?qū)懙降刂愤x中的單元。在T4狀態(tài):結(jié)束總線周期。如果訪問(wèn)的是慢速存儲(chǔ)器或是外設(shè)接口,則應(yīng)該在Tl狀態(tài)輸出的地址,經(jīng)過(guò)譯碼選中某個(gè)單元或設(shè)備后,立即驅(qū)動(dòng)READY信號(hào)到低電平。8086CPU在T3狀態(tài)采樣到READY信號(hào)無(wú)效,就會(huì)插入等待周期Tw,在Tw 狀態(tài)CPU繼續(xù)采樣READY信號(hào);直至其變?yōu)橛行Ш笤龠M(jìn)人T4狀態(tài),完成數(shù)據(jù)傳送,結(jié)束總線周期。在T4狀態(tài),8086CPU完成數(shù)據(jù)傳送,狀態(tài)信號(hào)S2 ~S0。變?yōu)闊o(wú)操作的過(guò)渡狀態(tài)。在此期間,8086CPU結(jié)束總線周期,恢復(fù)各信號(hào)線 的初態(tài),準(zhǔn)備執(zhí)行下一個(gè)總線周期。
第6章 作 業(yè) 答 案
6.1 若有一單板機(jī),具有用8片2114構(gòu)成的4KBRAM,連線如圖創(chuàng)所示。
若以每1KBRAM作為一組,則此4組RAM的基本地址是什么?地址有沒(méi)有重疊區(qū)?每一組的地址范圍為多少?
解:RAM的基本地址為:
第一組 OOOOH~03FFH
第二組 4000H~43FFH
第三組 8000H~83FFH
第四組 COOOH~C3FFH
地址有重疊區(qū)。每一組的地址范圍為OOOH~3FFH(1024個(gè)字節(jié))。
6.4若要擴(kuò)充1KBRAM(用2114片子),規(guī)定地址為8000H~83FFH,地址線應(yīng)該如何
連接?
解:擴(kuò)充lKBRAM至規(guī)定地址8000H~83FFH,其地址線的低10位接芯片,高6位地址
(Al5~A10=100000)產(chǎn)生組選擇信號(hào)。
第7 章
作 業(yè) 答 案
7.1 外部設(shè)備為什么要通過(guò)接口電路和主機(jī)系統(tǒng)相連?
解: 因?yàn)橥獠吭O(shè)備種類(lèi)繁多,輸入信息可能是數(shù)字量、模擬量或開(kāi)關(guān)量,而且輸
入速度、電平、功率與CPU差距很大。所以,通常要通過(guò)接口電路與主機(jī)系統(tǒng)
相連。
7.4 CPU和輸入輸出設(shè)備之間傳送的信息有哪幾類(lèi)?
解:CPU和輸入輸出設(shè)備之間傳送的信息主要有3類(lèi)。
(l)數(shù)據(jù)
在微型計(jì)算機(jī)中,數(shù)據(jù)通常為8位、16位或32位。
(2)狀態(tài)信息
在輸入時(shí),有輸入設(shè)備的信息是否準(zhǔn)備好;在輸出時(shí)有輸出設(shè)備是否有空,若輸
出設(shè)備正在輸出信息,則以忙指示等。
(3)控制信息
例如,控制輸入輸出設(shè)備啟動(dòng)或停止等。
7.9設(shè)一個(gè)接口的輸入端口地址為0100H,狀態(tài)端口地址為0104H,狀態(tài)端口中第5位
為1表示輸入緩沖區(qū)中有一個(gè)字節(jié)準(zhǔn)備好,可以輸入。設(shè)計(jì)具體程序以實(shí)現(xiàn)查詢式
輸入。
解: 查詢輸入的程序段為:
POLl: IN AL, 0104H
ANDAL,20H
JZ POLl
IN AL, 0100H
第 8 章作 業(yè) 答 案
8.1在中斷響應(yīng)過(guò)程中,8086CPU向8259A發(fā)出的兩個(gè)RT互信號(hào)分別起什么作用?
解:
CPU發(fā)出的第一個(gè)INTA脈沖告訴外部電路,其提出的中斷請(qǐng)求已被響應(yīng),應(yīng)準(zhǔn)備將類(lèi)型號(hào)發(fā)給CPU,8259A接到了這個(gè)INTA脈沖時(shí),把中斷的最高優(yōu)先級(jí)
請(qǐng)求置入中斷狀態(tài)寄存器(ISR)中,同時(shí)把IRR(中斷請(qǐng)求寄存器)中的相應(yīng)位復(fù)
位。CPU發(fā)出的第二個(gè)INTA脈沖告訴外部電路將中斷的類(lèi)型號(hào)放在數(shù)據(jù)總線
上。
8.28086CPU最多可以有多少個(gè)中斷類(lèi)型?按照產(chǎn)生中斷的方法分為哪兩大類(lèi)?
解:8086CPU最多可以有256個(gè)中斷類(lèi)型。按照產(chǎn)生中斷的方法,可以分為內(nèi)
部中斷(軟件中斷)和外部(硬件中斷)中斷兩大類(lèi)。
8.9 在編寫(xiě)中斷處理子程序時(shí),為什么要在子程序中保護(hù)許多寄存器?
解:因?yàn)樵谟脩舫绦蜻\(yùn)行時(shí),會(huì)在寄存器中有中間結(jié)果,當(dāng)在中斷服務(wù)程序中要
使用這些寄存器前要把這些寄存器的內(nèi)容推至堆棧保存(稱為保護(hù)現(xiàn)場(chǎng))。在從
中斷服務(wù)程序返回至用戶程序時(shí)把這些內(nèi)容從堆找恢復(fù)至寄存器中(稱為恢復(fù)
現(xiàn)場(chǎng))。
8.12若在一個(gè)系統(tǒng)中有5個(gè)中斷源,其優(yōu)先權(quán)排列為:1、2、3、4、5,它們的中斷服
務(wù)程序的入口地址分別為:3000H、302OH、3050H、3080H、30AOH。編寫(xiě)一個(gè)程序, 當(dāng)有中斷請(qǐng)求CPU響應(yīng)時(shí),能用查詢方式轉(zhuǎn)至申請(qǐng)中斷的優(yōu)先權(quán)最高的源的中斷服
務(wù)程序。
解: 若5個(gè)中斷源的中斷請(qǐng)求放在一中斷狀態(tài)寄存器中,按優(yōu)先權(quán)分別放在狀態(tài)的7 位(優(yōu)先權(quán)最高)至位3中。查詢方法的程序段為:
IN
AL,STATUS
CMP
AL,80H
JNE
N1
JMP
3000H
N1:
IN
AL,STATUS
CMP
AL,40H
JNE
N2
JMP
3020H
N2:
IN
AL,STATUS
CMP
AL,20H
JNE N3
JMP 3050H
N3:
IN
AL,STATUS
CMP AL,10H
JNE N4
JMP 3080H
N4:
IN
AL,STATUS
CMP AL,08H
JNE N5
JMP 30A0H N5:
RET
第9章 作 業(yè) 答 案
9.3在某一應(yīng)用系統(tǒng)中,計(jì)數(shù)器/定時(shí)器8253地址為340H~343H,定時(shí)用作分頻器(N 為分頻系數(shù)),定時(shí)器2用作外部事件計(jì)數(shù)器,如何編制初始化程序?
解:
定時(shí)器0用作分頻器,工作方式2,其初始化程序?yàn)椋?/p>
MOV AL,34H
OUT 343H,AL
MOV AL,N1
OUT 342H,AL
MOV AL,N2
OUT 342H,AL
定時(shí)器2用作外部事件計(jì)數(shù)器,工作在方式0,其初始程序:
MOV AL,0B0H
OUT 343H,AL
MOV AL,N1
OUT 342H,AL
MOV AL,N2
OUT 342H,AL
9.4若已有一頻率發(fā)生器,其頻率為1MHZ,若要示求通過(guò)計(jì)數(shù)器/定時(shí)器8253,著重
產(chǎn)生每秒一次的信號(hào),8253應(yīng)如何連接?編寫(xiě)出初始化程序。
解:
1MHZ的信號(hào)要變?yōu)槊棵胍淮?,則需經(jīng)過(guò)106分頻。一個(gè)通道的計(jì)數(shù)為16位最
大為65536。故需要需兩個(gè)通道級(jí)連,則每個(gè)通道計(jì)數(shù)為1000。用通道0和通道1級(jí)連,都工作在方式2,初始化程序?yàn)椋?/p>
MOV AL,34H
OUT 343H,AL
MOV AL,0E8H
OUT 342H,AL
MOV AL,03
OUT 342H,AL
MOV AL,74H
OUT 343H,AL
MOV AL,0E8H
OUT 342H,AL
MOV AL,03
OUT 342H,AL
9.9編程將計(jì)數(shù)器/定時(shí)器8253計(jì)數(shù)器0設(shè)置為模式1,計(jì)數(shù)初值3000H;計(jì)數(shù)器1設(shè)置
為模式2初值為2010H;計(jì)數(shù)器2設(shè)置為模式4初值為4030H;
解:若端口地址為:0F8H~0FBH,初始化程序?yàn)椋?/p>
MOV AL,32H
OUT 0FBH,AL
MOV AL,00H
OUT 0F8H,AL
MOV AL,30H
OUT 0F8H,AL
MOV AL,74H
OUT
0FBH,AL
MOV AL,10H
OUT
0F9H,AL
MOV
AL,20H
OUT
0F9H,AL
MOV
AL,0B8H
OUT
0FBH,AL
MOV
AL,30H
OUT
0FAH,AL
MOV
AL,40H
OUT
0FAH,AL
第10 章 作 業(yè) 答 案
10.4可編程并行接口芯片8255A的3個(gè)端口在使用時(shí)有什么差別?
解:通常端口A或B作為輸入輸出的數(shù)據(jù)端口(端口A還可以作為雙向數(shù)據(jù)端口), 而端口C作為控制或狀態(tài)信息的端口,它在“方式”字的控制下,可以分成兩個(gè)4位的端
口。每個(gè)端口包含一個(gè)4位鎖存器。它們分別與端口A和B配合使用,可用以作為控制
信號(hào)輸出,或作為狀態(tài)信號(hào)輸入。
10.7 8255A有哪幾種基本工作方式?對(duì)這些工作方式有什么規(guī)定?
解:8255A有3種基本的工作方式:
方式0-----基本輸入輸出:
方式1-----選通輸入輸出;
方式2-----雙向傳送。
10.8設(shè)置8255A工作方式,8255A的控制口地址為OOC6H。要求端口A工作在方式1,輸
入;端口B工作在方式0,輸出;端口C的高4位配合端口A工作;低4位為輸入。
解:按要求的方式控制字為:10111001B。編程語(yǔ)句為:
MOVAL,0B9H
OUTOOC6H, AL;
10.9設(shè)可編程并行接口芯片8255A的4個(gè)端口地址為OOCOH、00C2H、00C4H、OOC6H,要求用置0/置1方式對(duì)PC6置1,對(duì)PC4置0。
解:對(duì)端口C的PC6置1的控制字為: 00001101B,對(duì)PC4置O的控制字為:
0000100OB。
程序段為:
MOV AL,DH
OUT OOC6H, AL
MOV AL,08H.OUT00C6H, AL
第四篇:微機(jī)原理復(fù)習(xí)題及答案
一、選擇題
1.一般微機(jī)中不使用的控制方式是(D)A.程序查詢方式
B.中斷方式
C.DMA方式
D.通道方式 2.控制器的功能是(C)A.產(chǎn)生時(shí)序信號(hào) B.從主存取出指令并完成指令操作譯碼 C.從主存取出指令,分析指令并產(chǎn)生有關(guān)的操作控制信號(hào) D.控制計(jì)算機(jī)的一切核心功能
3.采用級(jí)聯(lián)方式使用8259中斷控制器,可使它的中斷源最多擴(kuò)大到(D)個(gè) A.8 B.16 C.32 D.64 4.Pc機(jī)數(shù)據(jù)總線信號(hào)的狀態(tài)是:(C).A.單向雙態(tài) B.單向三態(tài) C.雙向三態(tài) D.雙向雙態(tài) 5.地址總線為32位的微機(jī)系統(tǒng)中其內(nèi)存最大容量為(D)A.2000KB B.2048KB C.2048MB D.4096MB 6.CPU中程序計(jì)數(shù)器(PC)中存放的是(B)A.指令 B.指令地址 C.操作數(shù) D.操作數(shù)地址 7.采用條件傳送方式時(shí),必須要有(C).A.中斷邏輯 B.請(qǐng)求信號(hào) C.狀態(tài)端口 D.類(lèi)型號(hào) 8.在任何一個(gè)總線周期的T1狀態(tài),ALE輸出(A)A.高電平B.低電平C.高阻態(tài) D.無(wú)電流 9.若標(biāo)志寄存器的奇偶標(biāo)志位PF置“1”反映操作(C)A.結(jié)果是偶數(shù) B.結(jié)果是奇數(shù) C.結(jié)果中“1”的個(gè)數(shù)為偶數(shù) D.結(jié)果中“1”的個(gè)數(shù)為奇數(shù) 10.在DMA方式下,CPU與總線的關(guān)系是(C).A.只能控制數(shù)據(jù)總線 B.只能控制地址總線 C.成隔離狀態(tài) D.成短接狀態(tài) 11.當(dāng)使用BP寄存器作基址尋址時(shí),若無(wú)指定段替換,則內(nèi)定在(B)段內(nèi)尋址。A.程序 B.堆棧 C.數(shù)據(jù) D.附加
12.某DRAM芯片,其存儲(chǔ)容量為512KX*8位,該芯片的地址線和數(shù)據(jù)線數(shù)目為(D)A.8,512 B.512,8 C.18,8 D.19,8 13.計(jì)算機(jī)的存儲(chǔ)器采用分級(jí)存儲(chǔ)體系的主要目的是(D)。
A.便于讀寫(xiě)數(shù)據(jù) B.減小機(jī)箱的體積 C.便于系統(tǒng)升級(jí) D.解決存儲(chǔ)容量、價(jià)格和存取速度之間的矛盾 14.CPU中程序計(jì)數(shù)器(PC)中存放的是(B)A.指令 B.指令地址 C.操作數(shù) D.操作數(shù)地址 15.外設(shè)的中斷類(lèi)型碼必須通過(guò)16位數(shù)據(jù)總線的(B)傳送給8086.A.高8位 B.低8位 C.16位 D.高4位
16.磁盤(pán)存儲(chǔ)器的數(shù)據(jù)存取速度與下列哪一組性能參數(shù)有關(guān)?(B).A.平均等待時(shí)間,磁盤(pán)旋轉(zhuǎn)速度,數(shù)據(jù)傳輸速串 B.平均尋道時(shí)間,平均等待時(shí)間,數(shù)據(jù)傳輸速串 C.數(shù)據(jù)傳輸速率,磁盤(pán)存儲(chǔ)密度,平均等待時(shí)間 D.磁盤(pán)存儲(chǔ)器容量,數(shù)據(jù)傳輸速率,平均等持時(shí)間 17.8259的OCW1----中斷屏蔽字(C)設(shè)置.A.在ICW之前 B.只允許一次 C.可允許多次 D.僅屏蔽某中斷源時(shí) 18.PC機(jī)中的硬中斷服務(wù)程序執(zhí)行的是:(A)。
A.外部中斷請(qǐng)求CPU完成的任務(wù) B.主程序中安排的中斷指令 C.主程序中安排的轉(zhuǎn)移指令 D.主程序中安排的調(diào)用指令 19.標(biāo)志寄存器的標(biāo)志位ZF=1表示運(yùn)算結(jié)果(A)A.為零 B.為負(fù) C.溢出 D.有進(jìn)位 20.在DMA方式下,CPU與總線的關(guān)系是(C).A.只能控制數(shù)據(jù)總線 B.只能控制地址總線 C.成隔離狀態(tài) D.成短接狀態(tài) 21.存儲(chǔ)單元是指(B)
A.存放一個(gè)二進(jìn)制信息位的存儲(chǔ)元 B.存放一個(gè)機(jī)器字的所有存儲(chǔ)元集合 C.存放一個(gè)字節(jié)的所有存儲(chǔ)元集合 D.存放兩個(gè)字節(jié)的所有存儲(chǔ)元集合 22.提出中斷請(qǐng)求的條件是(B).A.外設(shè)提出請(qǐng)求 B.外設(shè)工作完成和系統(tǒng)允許時(shí)
C.外設(shè)工作完成和中斷標(biāo)志觸發(fā)器為“1”時(shí) D.外設(shè)需要工作
23.計(jì)算機(jī)的主存儲(chǔ)器容量達(dá)到10M時(shí),其地址的表示至少需要使用多少個(gè)2進(jìn)位?(C).A.10位 B.20位 C.30位 D.40位 24.I/O與主機(jī)信息的交換采用中斷方式的特點(diǎn)是(B)A.CPU與設(shè)備串行工作,傳送與主程序串行工作 B.Cpu與設(shè)備并行工作,傳送與主程序串行正作 C.CPU與設(shè)備并行工作,傳送與主程序并行工作.D.以上都不對(duì)
25.當(dāng)8086/8088訪問(wèn)100H端口時(shí),采用(C)尋址方式.A.直接 B.立即 C.寄存器間接 D.相對(duì) 26.Pc機(jī)數(shù)據(jù)總線信號(hào)的狀態(tài)是:(C).A.單向雙態(tài) B.單向三態(tài) C.雙向三態(tài) D.雙向雙態(tài) 27.某DRAM芯片,其存儲(chǔ)容量為512KX*8位,該芯片的地址線和數(shù)據(jù)線數(shù)目為(D)A.8,512 B.512,8 C.18,8 D.19,8 28.下面關(guān)于主存儲(chǔ)器(也稱為內(nèi)存)的敘述中,不正確的是:(B).A.主存儲(chǔ)器向CPU提供要執(zhí)行的數(shù)據(jù),程序段等 B.存儲(chǔ)器的讀、寫(xiě)操作一次讀出或?qū)懭胍粋€(gè)字節(jié) C.字節(jié)是主存儲(chǔ)器中信息的基本編址單位
D.從程序設(shè)計(jì)的角度來(lái)看,cacbe(高速緩存)也是主存儲(chǔ)器 29.段定義語(yǔ)句以(B)語(yǔ)句結(jié)束。
A.END B.ENDS C.ENDP D.ENDM 30.8255A的(C)只能工作在方式0。
A.A端口 B.B端口 C.C端口 D.前三者 31.8253—5是可編程的(A)接口芯片。
A.定時(shí)器/計(jì)數(shù)器 B.并行 C.串行 D.中斷控制器 32.存儲(chǔ)器是計(jì)算機(jī)系統(tǒng)的記憶設(shè)備,它主要用來(lái)(C)
A.存放數(shù)據(jù) B.存放程序 C.存放數(shù)據(jù)和程序 D.存放微程序 33.串行傳送的波特率是指單元時(shí)間內(nèi)傳送(A)數(shù)據(jù)的位數(shù)。
A.二進(jìn)制 B.八進(jìn)制 C.十進(jìn)制 D.十六進(jìn)制 34.下面關(guān)于主存儲(chǔ)器(也稱為內(nèi)存)的敘述中,不正確的是:(B).A.主存儲(chǔ)器向CPU提供要執(zhí)行的數(shù)據(jù),程序段等 B.存儲(chǔ)器的讀、寫(xiě)操作一次讀出或?qū)懭胍粋€(gè)字節(jié) C.字節(jié)是主存儲(chǔ)器中信息的基本編址單位
D.從程序設(shè)計(jì)的角度來(lái)看,cacbe(高速緩存)也是主存儲(chǔ)器
35.某計(jì)算機(jī)字長(zhǎng)32位,存儲(chǔ)容量為4MB,若按字編址,它的尋址范圍是(A)A.0-1M B.0-4MB C.0-4M D.0-1MB 36.一條指令中目的操作數(shù)不允許使用的尋址方式是(B)
A.寄存器尋址 B.立即數(shù)尋址 C.變址尋址
D.寄存器間接尋址 37.在8086/8088中,一個(gè)最基本的總線周期由4個(gè)時(shí)鐘周期(T狀態(tài))組成,在T1狀態(tài),CPU在總線發(fā)出(C)信息.A.數(shù)據(jù) B.狀態(tài) C.地址 D.其他
38.采用兩只中斷的控制器8259A級(jí)聯(lián)后,CPU的可屏蔽硬中斷源能擴(kuò)大到(D)A.64個(gè) B.32個(gè) C.16個(gè) D.15個(gè) 39.下列寄存器為8位的寄存器有(D)A.IP B.AX C.BP D.BH 40.地址總線為32位的微機(jī)系統(tǒng)中其內(nèi)存最大容量為(D)A.2000KB B.2048KB C.2048MB D.4096MB 41.8259的OCW1----中斷屏蔽字(C)設(shè)置.A.在ICW之前 B.只允許一次 C.可允許多次 D.僅屏蔽某中斷源時(shí) 42.在匯編語(yǔ)言程序設(shè)計(jì)中,標(biāo)號(hào)和變量的類(lèi)型屬性分別有:(A)。A.BIT、BYTE、WORD、DWORD B.NEAR、FAR C.EAR、FAR 和BYTE、WORD、DWORD D.CODE、DATA、STACK 43.在任何一個(gè)總線周期的T1狀態(tài),ALE輸出(A)A.高電平B.低電平C.高阻態(tài) D.無(wú)電流 44.下面哪一個(gè)是8088CPU中的代碼段寄存器(A)A.CS B.DS C.ES D.SS 45.8086CPU可擴(kuò)展I/O端口地址的個(gè)數(shù)最多為(D)A.1K B.4K C.8K D.64K 46.Pc機(jī)數(shù)據(jù)總線信號(hào)的狀態(tài)是:(C).A.單向雙態(tài) B.單向三態(tài) C.雙向三態(tài) D.雙向雙態(tài)
47.采用級(jí)聯(lián)方式使用8259中斷控制器,可使它的中斷源最多擴(kuò)大到(D)個(gè) A.8 B.16 C.32 D.64 48.存儲(chǔ)器是計(jì)算機(jī)系統(tǒng)的記憶設(shè)備,它主要用來(lái)(C)
A.存放數(shù)據(jù) B.存放程序 C.存放數(shù)據(jù)和程序 D.存放微程序
49.對(duì)于一低速外設(shè),在外設(shè)準(zhǔn)備數(shù)據(jù)期間希望CPU能做自己的工作,只有當(dāng)外設(shè)準(zhǔn)備好數(shù)據(jù)后才與CPU交換數(shù)據(jù)。完成這種數(shù)據(jù)傳送最好選用的傳送方式是(C)A.無(wú)條件傳遞方式 B.查詢傳送方式 C.中斷傳送方式 D.DMA傳送方式 50.設(shè)8255A的端口地址為80H~ 83H,則端口A的地址為(A)A.80H B.81H C.82H D.83H
二、填空題
1.Intel 8255A是一個(gè)_可編程的通用并行輸入輸出_ 接口芯片。
2.設(shè)某容量為4K的RAM芯片的起始地址為2000H(16位地址),則其終止地址為_(kāi)2FFFH_.3.一個(gè)控制系統(tǒng),當(dāng)主設(shè)備發(fā)生異常時(shí),需向CPU告警,請(qǐng)求處理,否則將危及工作人員的生命及設(shè)備的安全,此告警線應(yīng)接到8086CPU的_ NMI__中斷請(qǐng)求信號(hào)引腳上.4.采用中斷查詢傳送方式時(shí),完成一次傳送過(guò)程,首先必須通過(guò)執(zhí)行一條_IN__指令,讀取外設(shè)信息.5.8255A內(nèi)部具有__3___個(gè)輸入輸出端口。
6.機(jī)器指令由操作碼和__操作數(shù)____兩部分組成 7.計(jì)算機(jī)時(shí)鐘脈沖的頻率稱為_(kāi)___主頻______.8.可編程接口電路中用來(lái)存放控制電路組態(tài)的控制字節(jié)寄存器稱為_(kāi)_控制____寄存器。9.硬件中斷可分為_(kāi)_可屏蔽中斷,非屏蔽中斷__兩種。10.16K字節(jié)的RAM芯片應(yīng)有__14____根地址輸入端.11.邏輯地址由段基址和_偏移地址___組成。12.8086/8088CPU的數(shù)據(jù)線和地址線是以___分時(shí)_____方式輪流使用的。13.根據(jù)功能不同,8086的標(biāo)志位可分為_(kāi)_狀態(tài)_____和___控制____標(biāo)志。
14.8086/8088的中斷響應(yīng)了兩個(gè)總線周期,從____INTA______引腳輸出兩個(gè)負(fù)脈沖.15.在8086CPU系統(tǒng)中,設(shè)某中斷源的中斷類(lèi)型碼為08H,中斷向量為0100:1000H,則相應(yīng)的中斷向量存儲(chǔ)地址為_(kāi)__20____H.16.CPU通過(guò)一個(gè)外設(shè)接口同外設(shè)之間交換的信息包括數(shù)據(jù)信息,狀態(tài)信息和__控制信息____.17.Intel 8251A工作在同步方式時(shí),最大波特率為_(kāi)64kbps____.18.8255A內(nèi)部具有__3___個(gè)輸入輸出接口。
19.機(jī)器指令由 操作碼 和操作數(shù)兩部分組成。20.16K字節(jié)的RAM芯片應(yīng)有__14____根地址輸入端.21.用4KX4的RAM芯片組成32K的外擴(kuò)存儲(chǔ)器,共需芯片__16____片.22.8086/8088CPU的數(shù)據(jù)線和地址線是以___分時(shí)______方式輪流使用的。
23.數(shù)據(jù)總線是雙向總線,8位微處理器有8條數(shù)據(jù)線,16位微處理器有__16___條數(shù)據(jù)總線.24.8086系統(tǒng)中的BHE信號(hào)通常作為_(kāi)_奇____地址存儲(chǔ)體的體選信號(hào)。當(dāng)BHE為_(kāi)__低___電平時(shí)有效。25.Intel 8251A工作在異步方式時(shí),最大波特率為_(kāi)_19.2kbps_______.26.采用中斷查詢傳送方式時(shí),完成一次傳送過(guò)程,首先必須通過(guò)執(zhí)行一條____IN____指令,讀取外設(shè)狀態(tài)信息.27.8086CPU中斷系統(tǒng)有__256____種中斷類(lèi)型碼,中斷類(lèi)型碼與對(duì)應(yīng)的矢量地址換算公式為_(kāi)_中斷類(lèi)型碼×4(n×4)____。
28.計(jì)算機(jī)時(shí)鐘脈沖的頻率稱為_(kāi)_主頻________.29.一般外設(shè)接口與外設(shè)間交換的信息有控制信息、數(shù)據(jù)信息 和 狀態(tài)信息。30.壓棧指令的源操作數(shù)只能是 16 位的操作數(shù)。31.主機(jī)與外設(shè)之間數(shù)據(jù)傳送方式有無(wú)條件傳送方式、查詢傳送方式、中斷方式 和 DMA方式。32.地址總線通常是_單向___總線,由CPU輸出,8位微處理器有16條地址總線,16位微處理器有20條或更多。
33.CPU從主存取出一條指令并執(zhí)行該指令的時(shí)間稱為_(kāi)__指令周期______.34.8255A控制字的最高位D7=_____1____時(shí),表示該控制字為方式控制字。35.8255A的三個(gè)端口中只有端口__C___沒(méi)有輸入鎖存功能。36.用Inter2114組成4K*8bit的RAM要用___8___片.37.輸入/輸出指令間接尋址必須通過(guò)_DX_____寄存器.38.8086/8088CPU內(nèi)部共有____14______個(gè)16位寄存器。
39.8086/8088CPU的數(shù)據(jù)線和地址線是以__分時(shí)____方式輪流使用的。
40.串操作指令規(guī)定源串在__數(shù)據(jù)____段中,用_SI____來(lái)尋址源操作數(shù),目的串在__附加數(shù)據(jù)____段中,用 ___DI___ 來(lái)尋址目的操作數(shù)。
41.存儲(chǔ)器通常由存儲(chǔ)矩陣,_地址譯碼器____,控制部件和三態(tài)緩沖器組成.42.CPU總線通常包括地址總線、數(shù)據(jù)總線和___控制______總線等三組總線。
三、簡(jiǎn)答題
1.外設(shè)向CPU申請(qǐng)中斷,但CPU不給以響應(yīng),其原因有哪些?(1)CPU處于關(guān)中斷狀態(tài),IF=0;(2)該中斷請(qǐng)求已被屏蔽;(3)該中斷請(qǐng)求的時(shí)間太短,未能保持到指令周期結(jié)束;(4)CPU已釋放總線,而未收回總線控制權(quán)。
2.8255各口設(shè)置如下:A組與B組均工作于方式0,A口為數(shù)據(jù)輸入,B口為輸出,C口高位部分為輸出,低位部分為輸入,A口地址設(shè)為40H.(1)寫(xiě)出工作方式控制字(2)對(duì)8255A初始化
(3)從A口輸入數(shù)據(jù),將其取反后從B口送出
(1)10010001B 即91H(2)MOV AL,91H;OUT 43H,AL
(3)IN AL,40H;NOT AL;OUT 41H,AL
3.說(shuō)明程序存儲(chǔ)及程序控制的概念。
程序存儲(chǔ):程序是由一條條指令組合而成的,而指令是以二進(jìn)制代碼的形式出現(xiàn)的,把執(zhí)行一項(xiàng)信息處理任務(wù)的程序代碼,以字節(jié)為單位,按順序存放在存儲(chǔ)器的一段連續(xù)的存儲(chǔ)區(qū)域內(nèi),這就是程序存儲(chǔ)的概念。
程序控制:計(jì)算機(jī)工作時(shí),CPU中的控制器部分,按照程序指定的順序(由碼段寄存器CS及指令指針寄存器IP指引),到存放程序代碼的內(nèi)存區(qū)域中去取指令代碼,在CPU中完成對(duì)代碼的分析,然后,由CPU的控制器部分依據(jù)對(duì)指令代碼的分析結(jié)果,適時(shí)地向各個(gè)部件發(fā)出完成該指令功能的所有控制信號(hào),這就是程序控制的概念
4.已知AH=77H,AL=33H能否說(shuō)AX=7733H,為什么?SI寄存器可分不SH和SL嗎? 能。因?yàn)椋粒厥牵保段坏臄?shù)據(jù)寄存器,它可以以字(16位)或以字節(jié)(8位)形式訪問(wèn)。不能。因?yàn)镾I是16位的源變址寄存器,只能以字(16位)為單位使用。
5.一臺(tái)微型計(jì)算機(jī)有16根地址線,8根數(shù)據(jù)線,如果采用字節(jié)編址,它可訪問(wèn)的最大存儲(chǔ)空間是多少字節(jié)?試用十六進(jìn)制數(shù)表示其地址范圍.64KB,0000H~FFFFH 6.半導(dǎo)體隨機(jī)存儲(chǔ)器RAM與只讀存儲(chǔ)器ROM有何區(qū)別?它們各有哪幾種類(lèi)型? 隨機(jī)存儲(chǔ)器RAM中的任何存儲(chǔ)單元都能隨時(shí)讀寫(xiě),即存取操作與時(shí)間,存儲(chǔ)單元物理位置順序無(wú)關(guān),一旦掉電,所存信息丟失。常見(jiàn)類(lèi)型有靜態(tài)RAM和動(dòng)態(tài)RAM等。
ROM是一種只讀存儲(chǔ)器,其內(nèi)容一經(jīng)寫(xiě)入,在工作過(guò)程中就能只能讀出不能重寫(xiě),即使掉電,信息也不會(huì)丟失。常見(jiàn)的類(lèi)型有掩模ROM,PROM,EPROM,EEPROM等。
7.什麼是引腳的分時(shí)復(fù)用?請(qǐng)說(shuō)明8086/8088有哪些分時(shí)復(fù)用引腳?其要解決的問(wèn)題是什么?
8086的數(shù)據(jù)線和地址線是利用復(fù)用的,所以常把8086的總線稱為多路總線,即某一時(shí)刻總線上出現(xiàn)的是地址,另一時(shí)刻,總線上出現(xiàn)的是數(shù)據(jù)。正是這種引腳的分時(shí)使用方法才能使8086用40條引腳實(shí)現(xiàn)20位地址、16位數(shù)據(jù)及眾多的控制信號(hào)和狀態(tài)信號(hào)的傳輸。8086CPU的分時(shí)復(fù)用的引腳有:地址/數(shù)據(jù)復(fù)用引腳.作用為一個(gè)腳多用,如:AD15~AD0,在總線周期的T1狀態(tài),傳送地址信息,在其它狀態(tài)則傳送數(shù)據(jù)信息; 8.說(shuō)明微機(jī)系統(tǒng)的工作實(shí)質(zhì)。
計(jì)算機(jī)之所以能在沒(méi)有人直接干預(yù)的情況下,自動(dòng)地完成各種信息處理任務(wù),是因?yàn)槿藗兪孪葹樗幹屏烁鞣N工作程序,計(jì)算機(jī)的工作過(guò)程,就是執(zhí)行程序的過(guò)程。9.常用的存儲(chǔ)器片選控制方法有哪幾種?它們各有什么優(yōu)缺點(diǎn)? 常用存儲(chǔ)器片選控制方法有3種,分別是線選法,全譯碼法,局部譯碼法。線選法的優(yōu)點(diǎn)是連線簡(jiǎn)單,缺點(diǎn)是地址空間利用率低;全譯碼法不浪費(fèi)地址空間,但需譯碼電路;局部譯碼介于前二者之間。當(dāng)存儲(chǔ)容量要求大于系統(tǒng)地址線所能尋址的最大范圍,或者幾個(gè)微處理器需要共享某一存儲(chǔ)區(qū)域時(shí),則采用擴(kuò)充尋址法。
10.試說(shuō)明異步串行通信和同步串行通信的特點(diǎn).異步特點(diǎn):在通信的數(shù)據(jù)流中,字符與字符間的傳送是完全異步的,字符內(nèi)部位與位之間還是基本同步傳送。同步特點(diǎn):數(shù)據(jù)流中的字符之間和字符內(nèi)部各位間都同步,顯然這種方式對(duì)同步要求很?chē)?yán)格,收/發(fā)雙方必須以同一時(shí)鐘來(lái)控制發(fā)送與接收。
11.在8086CPU中,已知CS寄存器和IP寄存器的內(nèi)容分別為如下所示,試確定其物理地址.(1)CS=1000H IP=2000H 12000H(2)CS=2000H IP=00A0H 200A0H(3)CS=1234H IP=0C00H 12F40H
12.8259A可編程中斷控制器的主要功能有哪些? 1 單片8259A可管理8級(jí)優(yōu)先權(quán)中斷源,通過(guò)級(jí)聯(lián)可管理64級(jí)優(yōu)先權(quán)中斷源; 2 對(duì)任何一級(jí)中斷源都可單獨(dú)進(jìn)行屏蔽,使該中斷請(qǐng)求暫時(shí)被掛起,直到取消屏蔽時(shí); 能向CPU提供中斷類(lèi)型碼; 具有多種中斷優(yōu)先級(jí)管理方式,這些管理方式可能過(guò)程序動(dòng)態(tài)的進(jìn)行變化。13.如果利用中斷方式傳送數(shù)據(jù),則數(shù)據(jù)是如何傳輸?shù)?中斷機(jī)構(gòu)起什么作用? 利用中斷方式傳送數(shù)據(jù),一般是首先向CPU發(fā)出中斷請(qǐng)求,CPU響應(yīng)中斷后在中斷處理程序中進(jìn)行數(shù)據(jù)傳輸,傳輸完畢返回。中斷機(jī)構(gòu)起控制作用,實(shí)時(shí)性較強(qiáng)。
14.8086/8088系統(tǒng)中為什麼一定要有地址鎖存器,需要鎖存哪些信息?
8088/8086系統(tǒng)中,一般數(shù)據(jù)位是8位,而地址位是16位的話,那么可以這么理解:程序要輸出一個(gè)地址,就必須先輸出高8位,用鎖存器鎖定后,再輸出低8位(或反之),這時(shí)才完成一個(gè)16位地址的輸出。
鎖存的信息:邏輯電路:通過(guò)控制信號(hào)完成對(duì)當(dāng)前輸出信號(hào)的固定,主要是邏輯狀態(tài)(0,1)集成功能:是一個(gè)可以完成當(dāng)前總線狀態(tài)的保存
計(jì)算機(jī)組原:完成數(shù)據(jù)的保存,是存儲(chǔ)器等功能器件的輔助器件 16.8086中有哪些寄存器可用來(lái)指示存儲(chǔ)器偏移地址? 可用來(lái)指示段內(nèi)偏移地址的寄存器共有6個(gè):IP、SP、BP、BX、SI、DI.17.8255的功能作用是什么?它有哪些工作方式? 8255是可編程的并行接口芯片,設(shè)有三個(gè)8位的數(shù)據(jù)輸入/輸出端口,拱有三種工作方式:方式0為基本的輸入/輸出方式;方式1為應(yīng)答式輸入/輸出方式;方式2為應(yīng)答式雙向數(shù)據(jù)傳送方式。18.寫(xiě)出中斷響應(yīng)的處理過(guò)程.(1)中斷請(qǐng)求(2)中斷允許(3)保護(hù)斷電,保護(hù)現(xiàn)場(chǎng)(4)中斷服務(wù)(5)恢復(fù)現(xiàn)場(chǎng),中斷返回。19.總線周期的含義是什么?8088/8086基本總線周期由幾個(gè)時(shí)鐘周期組成?
總線周期是指CPU從存儲(chǔ)器I/O端口存取一個(gè)字節(jié)所需要的時(shí)間。8088/8086基本總線周期由4個(gè)時(shí)鐘周期組成。
23.某程序數(shù)據(jù)段中存有數(shù)據(jù)字:1234H和5A6BH,若已知DS=5AA0H,她們的偏移地址分別為245AH和3245H,試畫(huà)出它們?cè)诖鎯?chǔ)器中的存放情況。24.什麼是I/O接口,什麼是I/O端口?
I/O接口:I/O接口是INPUT/OUTPUT指輸入/輸出設(shè)備接口
I/O端口:CPU和外設(shè)進(jìn)行數(shù)據(jù)傳輸時(shí),各類(lèi)信息在接口中進(jìn)入不同的寄存器,這些寄存器為I/O端口。
25.虛擬存儲(chǔ)器有那些特點(diǎn)?
第一,允許用戶用彼內(nèi)存空間大的多的空間來(lái)訪問(wèn)主存。第二,每次訪存都要進(jìn)行虛實(shí)地址的轉(zhuǎn)換。
四、1.以下是完成20個(gè)字節(jié)字符串的傳送,并檢測(cè)是否正確的程序,若正確標(biāo)志位放00,否則放11。給指定語(yǔ)句加標(biāo)注。DATSEG SEGMENT DATAX DB ‘ABCD??RST’ DATAY DB 20 DUP(?)FLAGS DB ? DATSEG ENDS MOV AX, DATSEG;MOV DS, AX MOV ES, AX CLD;MOV SI, OFFSET DATAX;MOV DI, OFFSET DATAY MOV CX, 20;REP MOVSB ??
REPE CMPSB JZ HHH;MOV AL, 11 JMP III HHH: MOV AL, 00 III: MOV FLAGS, AL 2.程序改錯(cuò)(10分)(1)保持STATE單元內(nèi)容的D4、D3兩位為“0”,其余六位不變。
AAA: MOV SI,OFFSET STATE MOV AL,[SI] AND AL,0C0H MOV [SI],AL RET 改正:()
(2)從4000H開(kāi)始有20H個(gè)帶符號(hào)數(shù),要求統(tǒng)計(jì)出負(fù)數(shù)的個(gè)數(shù)送MIN單元。
XOR DI,DI
MOV BX,4000H
MOV CX,20H AGAIN:MOV AL,[BX] INC BX
TEST AL,01H
JNZ GOON INC DI GOON: DEC CX JNZ AGAIN MOV MIN,DI
RET 改正:(),()
3.對(duì)40個(gè)有符號(hào)數(shù)進(jìn)行測(cè)試,分別把正、負(fù)字存放進(jìn)兩段不同單元。完成此程序。
DATA SEGMENT BLOCK DB 43H,56H,0ABH?? ;共40個(gè)字節(jié) PDATA DB 40 DUP(?)NDATA DB 40 DUP(?)DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA, ES:DATA EXP1 PROC FAR START: PUSH DS
MOV AX, 0 PUSH AX
MOV AX , DATA MOV DS, AX MOV ES, AX
LEA SI , BLOCK LEA DI, PDATA LEA BX, NDATA CLD
MOV CX, PDATA-BLOCK GOON: LODSB
TEST AL, 80H JNZ MINUS STOSB
JMP AGAIN MINUS: XCHG BX, DI
STOSB
XCHG BX, DI AGAIN: LOOP GOON RET EXP1 ENDP CODE ENDS END START 4.程序改錯(cuò)
(1)保持STATE單元內(nèi)容的D4、D3兩位為“0”,其余六位不變。AAA: MOV SI,OFFSET STATE
MOV AL,[SI] AND AL,0C0H MOV [SI],AL RET 改正:()
(2)ST1是DS段中的一個(gè)4字節(jié)字符串,ST2是ES段中的一個(gè)4字節(jié)字符串,比較其是否相等;相等置FLAG單元為00H,不等置FLAG單元為11H。MOV SI,OFFSET ST1 MOV DI,OFFSET ST2 MOV CX,0004 STD REPNZ CMPSB JZ HHH MOV AL,11 JMP III HHH: MOV AL,00 III: MOV FLAG,AL RET 改正:()()
5.以下是完成20個(gè)字節(jié)字符串的傳送,并檢測(cè)是否正確的程序,若正確標(biāo)志位放00,否則放11。完成此程序。DATSEG SEGMENT DATAX DB ‘ABCD??RST’ DATAY DB 20 DUP(?)FLAGS DB ? DATSEG ENDS MOV AX, DATSEG MOV DS, AX MOV ES , AX CLD MOV SI , OFFSET DATAX MOV DI, OFFSET DATAY MOV CX , 20 REP MOVSB ??
REPE CMPSB JZ HHH MOV AL, 11 JMP III HHH: MOV AL, 00 III: MOV FLAGS , AL 6.程序改錯(cuò)
(1)保持STATE單元內(nèi)容的D4、D3兩位為“0”,其余六位不變。
AAA: MOV SI,OFFSET STATE
MOV AL,[SI] AND AL,0C0H
MOV [SI],AL RET 改正:()
(2)在BUF開(kāi)始的50個(gè)有符號(hào)數(shù)中(16位),找出最小值存放在MIN單元中。
MOV BX,OFFSET BUF MOV CL,31H
MOV AX,[BX] BBB: INC BX INC BX
CMP AX,[BX]
JNC CCC
MOV AX,[BX] CCC: DEC CX
MOV SI,OFFSET BUF JNZ BBB MOV MIN,AX
RET 改正:(),()
7.用1K×4的2114芯片組成2K×8的存儲(chǔ)器系統(tǒng)。
8.用2K×8的2716A存儲(chǔ)器芯片組成8K×8的存儲(chǔ)器系統(tǒng)。
9.用1K×4的2114芯片構(gòu)成lK×8的存儲(chǔ)器系統(tǒng)。
12.現(xiàn)有8個(gè)字節(jié)的數(shù)據(jù)為34H,45H,56H,67H,78H,89H,9AH,ABH,假定它們?cè)诖鎯?chǔ)器中的物理地址為400A5H-400ACH,試求各存儲(chǔ)單元的有效地址;若從存儲(chǔ)器中讀出這些數(shù)據(jù),試問(wèn)要訪問(wèn)幾次存儲(chǔ)器?
各字節(jié)的有效地址分別為0085H,0086H,0087H,0088H,008AH,008BH,008CH 8個(gè)總線周期
13.對(duì)40個(gè)有符號(hào)數(shù)進(jìn)行測(cè)試,分別把正、負(fù)字存放進(jìn)兩段不同單元。給指定語(yǔ)句加標(biāo)注。
DATA SEGMENT BLOCK DB 43H,56H,0ABH?? ;共40個(gè)字節(jié) PDATA DB 40 DUP(?)NDATA DB 40 DUP(?); DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA, ES:DATA EXP1 PROC FAR START: PUSH DS
MOV AX, 0 PUSH AX
MOV AX, DATA MOV DS, AX MOV ES, AX LEA SI, BLOCK
LEA DI, PDATA ; LEA BX, NDATA CLD
MOV CX, PDATA-BLOCK;
GOON: LODSB
TEST AL, 80H
JNZ MINUS ; STOSB
JMP AGAIN MINUS: XCHG BX, DI ;
STOSB
XCHG BX, DI AGAIN: LOOP GOON
RET EXP1 ENDP CODE ENDS END START 14.程序改錯(cuò)
(1)從4000H開(kāi)始有20H個(gè)帶符號(hào)數(shù),要求統(tǒng)計(jì)出負(fù)數(shù)的個(gè)數(shù)送MIN單元。XOR DI,DI
MOV BX,4000H
MOV CX,20H AGAIN:MOV AL,[BX]
INC BX
TEST AL,01H
JNZ GOON INC DI GOON: DEC CX JNZ AGAIN MOV MIN,DI
RET 改正:(),()
(2)ST1是DS段中的一個(gè)4字節(jié)字符串,ST2是ES段中的一個(gè)4字節(jié)字符串,比較其是否相等;相等置FLAG單元為00H,不等置FLAG單元為11H。
MOV SI,OFFSET ST1 MOV DI,OFFSET ST2 MOV CX,0004 STD REPNZ CMPSB JZ HHH MOV AL,11 JMP III HHH: MOV AL,00 III: MOV FLAG,AL RET 改正:()()15.畫(huà)出容量為8K*8的ROM連接圖(CPU用8088,EPROM用2716,R0M地址區(qū)從4000H開(kāi)始)
第五篇:微機(jī)原理復(fù)習(xí)題及答案
一、填空題
1.Rfb是運(yùn)放 電阻,被放在。2.DAC0832內(nèi)部有 地和 地。3.LE是DAC0832內(nèi)部寄存器的鎖存命令。當(dāng)其為 時(shí),寄存器輸出隨 變化。
4.當(dāng)LE為0時(shí),數(shù)據(jù) 在寄存器,不再隨 上的數(shù)據(jù)變化而變化。5.在過(guò)程控制應(yīng)用中,有時(shí)對(duì)控制量的輸出要求是 的,在給定值時(shí)產(chǎn)生的偏差不改變控制量的,這時(shí)可采用單極性輸出電路。6.在隨動(dòng)系統(tǒng)中,由偏差所產(chǎn)生的控制量?jī)H 不同,而且控制量 不同,這時(shí)要求D/A轉(zhuǎn)換器有雙極性輸出;7.D/A轉(zhuǎn)換器實(shí)現(xiàn)雙極性輸出,在輸出除需要有運(yùn)算放大器外還應(yīng)增加
和。
8.若D/A轉(zhuǎn)換器芯片內(nèi)部有鎖存寄存器,微處理器就把D/A芯片當(dāng)作一個(gè)并行;若D/A轉(zhuǎn)換器芯片內(nèi)部無(wú)鎖存寄存器,微處理器就把D/A芯片當(dāng)作一個(gè)并行。
9.ADCO809是CMOS的 位 轉(zhuǎn)換器。
10.ADCO809的引腳EOC是 信號(hào),可作為。
二、單項(xiàng)選擇題
1.ADC0809啟動(dòng)A/D轉(zhuǎn)換的方式是。
A)高電平B)負(fù)電平C)負(fù)脈沖 D)正脈沖 2.ADC0809的輸出。
A)具有三態(tài)緩沖器,但不可控 B)具有可控的三態(tài)緩沖器 C)沒(méi)有三態(tài) 緩沖器 D)沒(méi)有緩沖鎖存
3.ADC0809可以用()引線經(jīng)中斷邏輯向CPU申請(qǐng)中斷。A)OE B)START C)EOC D)ALE
三、多項(xiàng)選擇題
1.DAC0832有()工作方式。
A)單緩沖 B)雙緩沖 C)多級(jí)緩沖 D)直通
2.ADC0809與微機(jī)系統(tǒng)相連接,可采用的數(shù)據(jù)傳輸方式有。A)無(wú)條件傳輸 B)查詢傳輸 C)中斷傳輸 D)DMA傳輸
四、簡(jiǎn)答題
1、已知某DAC的最小分辨電壓VLSB=5mV,滿刻度輸出電壓Vom=10V,試求該電路輸入二進(jìn)制數(shù)字量的位數(shù)n應(yīng)是多少?
2、A/D轉(zhuǎn)換器和微機(jī)接口中的關(guān)鍵問(wèn)題有哪些?
3、A/D轉(zhuǎn)換器為什么要進(jìn)行采樣?采樣頻率應(yīng)根據(jù)什么選定?
4、若ADC輸入模擬電壓信號(hào)的最高頻率位20KHz,取樣頻率的下限是多少?
5、雙積分式ADC電路中的計(jì)數(shù)器是十進(jìn)制的,最大計(jì)數(shù)容量N=(1000)10,時(shí)鐘脈沖頻率為5KHz,完成一次轉(zhuǎn)換最長(zhǎng)需要多少時(shí)間?
6、設(shè)被測(cè)溫度的變化范圍為300℃~1000℃,如要求測(cè)量誤差不超過(guò)±1℃,應(yīng)選用分辨率為多少位的A/D轉(zhuǎn)換器?
7、模-數(shù)轉(zhuǎn)換器ADC常用的有雙積分式和逐次逼近式,請(qǐng)扼要比較它們的優(yōu)缺點(diǎn)。在微機(jī)控制系統(tǒng)的模擬輸入通道中常常應(yīng)用采樣-保持電路,其主要原因是什么?
五、編程應(yīng)用題
1.設(shè)狀態(tài)端口地址為86H,數(shù)據(jù)端口的地址為87H,外部輸入信息準(zhǔn)備好狀態(tài)標(biāo)志為D7=1,請(qǐng)用查詢方式寫(xiě)出讀入外部信息的程序段。2.設(shè)狀態(tài)端口地址為76H,數(shù)據(jù)端口地址為75H,外部設(shè)備是否準(zhǔn)備好信息 由D7位傳送,D7=0為未準(zhǔn)備好(忙),請(qǐng)用查詢方式寫(xiě)出CPU向外部傳送數(shù)據(jù)的程序段。3.數(shù)據(jù)采集系統(tǒng)電路如下圖所示。圖中A/D轉(zhuǎn)換器為ADCO809,定時(shí)器/計(jì)數(shù)器8233-5的計(jì)數(shù)器1將5MHz時(shí)鐘轉(zhuǎn)換成500KHz提供給ADC0809。根據(jù)上述電路和說(shuō)明,以及下面程序的功能要求,在空格中填入相應(yīng)的指令(必要時(shí)可增減空格數(shù))。
MOV DX,3DBH;設(shè)置8253一控制字 MOV AL,57H OUT DX,AL(1);設(shè)且計(jì)數(shù)器1計(jì)數(shù)初值(2)(3);ADCO809模擬通道IN5采樣12次,數(shù)據(jù)存人BUF MOV BX,OFFSETBUF MOV CX,l2(4)LOP:(5)CALL DELAY lS;軟件延時(shí)一秒(6);數(shù)據(jù)讀入BUF MOV [BX],AL INC BX LOOP LOP
4、已知A/D變換器的引線及其工作時(shí)序如下圖所示。利用START負(fù)脈沖可啟動(dòng)A/D變換器開(kāi)始變換,啟動(dòng)脈沖后A/D變換器進(jìn)入忙(BUSY)狀態(tài),待變換結(jié)束。BUSY變高電平,可從D0~D10取得變換好的數(shù)據(jù)。試通過(guò)8255將此A/D變換器接到8088系統(tǒng)總線上,接口地址8000H-800F可任選,試畫(huà)出連接線。
答案
一、填空題
1、反饋電阻;芯片內(nèi)部
2、模擬;數(shù)字3、1;輸入
4、鎖存;數(shù)據(jù)總線
5、單向;極性
6、大?。划愋?/p>
7、運(yùn)放;VREF
8、輸出接口;輸出外部設(shè)備 9、8位;A/D
10、轉(zhuǎn)換結(jié)束;中斷請(qǐng)求信號(hào)
二、單項(xiàng)選擇題
1、C
2、B
3、A
三、多項(xiàng)選擇題
1、ABD
2、BCD
四、簡(jiǎn)答題
1、答: 2
2、答: A/D轉(zhuǎn)換器和微機(jī)接口時(shí)的關(guān)鍵問(wèn)題主要有6個(gè)。① A/D轉(zhuǎn)換器輸出和CPU的接口方式,主要有2種連接方式:
一種是A/D芯片輸出端直接和系統(tǒng)總線相連;另一種是A/D芯片輸出端通過(guò)接口電路和總線相連。② A/D轉(zhuǎn)換器的分辨率和微機(jī)數(shù)據(jù)總線的位數(shù)匹配:當(dāng)10位以上的A/D轉(zhuǎn)換器和8位數(shù)據(jù)總線連接時(shí),由于數(shù)據(jù)要按字節(jié)分時(shí)讀出,因此從8位數(shù)據(jù)線上需分2次來(lái)讀取轉(zhuǎn)換的數(shù)據(jù)。設(shè)計(jì)接口時(shí),數(shù)據(jù)寄存器要增加讀寫(xiě)控制邏輯。③ A/D轉(zhuǎn)換的時(shí)間和CPU的時(shí)間配合問(wèn)題:要注意A/D轉(zhuǎn)換的啟動(dòng)方式,通常啟動(dòng)信號(hào)分為電平控制啟動(dòng)和脈沖啟動(dòng)兩種。其中又有不同的極性要求。還要注意轉(zhuǎn)換后信號(hào)的處理。④A/D的控制和狀態(tài)信號(hào)。因?yàn)锳/D轉(zhuǎn)換器的控制和狀態(tài)信號(hào)的類(lèi)型與特征對(duì)接口有很大影響,在設(shè)計(jì)時(shí)必須要注意分析控制和狀態(tài)信號(hào)的使用條件。⑤ 輸入模擬電壓的連接,特別是多路模擬電壓的切換控制。⑥ 接地問(wèn)題,為了減輕數(shù)字信號(hào)脈沖對(duì)模擬信號(hào)的干擾,數(shù)字地和模擬地要正確連接。
3、答: 因?yàn)楸晦D(zhuǎn)換的模擬信號(hào)在時(shí)間上是連續(xù)的,瞬時(shí)值有無(wú)限多個(gè),轉(zhuǎn)換過(guò)程需要一定的時(shí)間,不可能把每一個(gè)瞬時(shí)值都一一轉(zhuǎn)換成模擬量。因此對(duì)連續(xù)變化的模擬量要按一定的規(guī)律和周期取出其中的某一瞬時(shí)值,這個(gè)過(guò)程就是將模擬量離散化,稱之為采樣,采樣以后用若干個(gè)離散的瞬時(shí)值來(lái)表示原來(lái)的模擬量。
通常為了使A/D輸出信號(hào)經(jīng)過(guò)D/A還原后能更好地反映輸入模擬信號(hào)的變化,根據(jù)采樣定理,采樣頻率一般要高于或至少等于輸入信號(hào)中最高頻率分量的2倍,就可以使被采樣的信號(hào)能夠代表原始的輸入信號(hào)。在輸入信號(hào)頻率不是太高的實(shí)際應(yīng)用中,一般取采樣頻率為最高頻率的4~8倍。
4、答:取樣頻率的下限為20kHZ×2=40 kHZ
5、答:由于雙積分式A/D的工作模式是固定時(shí)間正向積分、固定斜率反向積分。正向積分與反向積分的切換是由正向積分開(kāi)始時(shí)計(jì)數(shù)器從0計(jì)數(shù)到計(jì)滿后產(chǎn)生的溢出信號(hào)控制,較高的反極性的基準(zhǔn)電壓進(jìn)入積分器反向積分(因?yàn)榉聪蛐甭手荡笥谡蛐甭手担话惴聪蚍e分時(shí)間要小于正向積分時(shí)間),計(jì)數(shù)器再次從0開(kāi)始計(jì)數(shù),直至反向積分至0時(shí)停止計(jì)數(shù),此時(shí)的計(jì)數(shù)值就是對(duì)應(yīng)的輸入量的變換數(shù)字量。因此完成一次轉(zhuǎn)換的最長(zhǎng)時(shí)間不大于2倍正向積分時(shí)間(即計(jì)數(shù)器從0到計(jì)滿時(shí)間的2倍)。
6、答:取最大的溫度變化范圍1000O,最小的溫度分辨為1O,這樣只要不少于1000等份就可以。因此可選10位A/D轉(zhuǎn)換器,若它的滿量程是1000O,最小的溫度分辨為
7、答:逐次逼近ADC采用的是二分搜索、反饋比較、逐次逼近的轉(zhuǎn)換原理。其優(yōu)點(diǎn)是轉(zhuǎn)換速度快,轉(zhuǎn)換精度高;缺點(diǎn)是輸入模擬信號(hào)變化速度較快時(shí),偉產(chǎn)生較大的非線型誤差。
雙積分ADC的優(yōu)點(diǎn)是不需要ADC,能以低成本實(shí)現(xiàn)高分文辨率,轉(zhuǎn)換精度高,抗干擾 能力強(qiáng)。缺點(diǎn)是需要二次積,轉(zhuǎn)換速度慢。
當(dāng)輸入模擬信號(hào)變化率較大時(shí),逐次逼近式ADC會(huì)產(chǎn)生相當(dāng)大的非線性誤差,為改善這種情況,可在ADC前面增加一級(jí)采樣保持電路。
五、編程應(yīng)用題
1、答案:START:IN AL,86H
TEST AL,80H
JZ START
IN AL,87H
2、答案:START:IN AL,76H
TEST AL,80H
JZ START
MOV AL,輸出的字節(jié)
OUT 75H,AL
3、答案:(1)MOV DX,3D9H
(2)MOV AL,10H
(3)OUT DX,AL
(4)MOV DX,3D5H
(5)OUT DX,AL
(6)MOV DX,3D0H
IN AL,DX