微型計(jì)算機(jī)原理與接口技術(shù)第三版(張榮標(biāo))答案_第1頁(yè)
微型計(jì)算機(jī)原理與接口技術(shù)第三版(張榮標(biāo))答案_第2頁(yè)
微型計(jì)算機(jī)原理與接口技術(shù)第三版(張榮標(biāo))答案_第3頁(yè)
微型計(jì)算機(jī)原理與接口技術(shù)第三版(張榮標(biāo))答案_第4頁(yè)
微型計(jì)算機(jī)原理與接口技術(shù)第三版(張榮標(biāo))答案_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

微型計(jì)算機(jī)原理與接?技術(shù)第三版(張榮標(biāo))答案微型計(jì)算機(jī)原理與第三版答案第1章練習(xí)題1.選擇題(1)BCA(2)A(3)DA(4)C2.填空(1)10,12(2)取出指令,執(zhí)?指令(3)(4)內(nèi)部碼3.簡(jiǎn)答題(1)微處理器,微型計(jì)算機(jī)和微型計(jì)算機(jī)系統(tǒng)三者有何聯(lián)系與區(qū)別?答:微處理器是把原來(lái)的中央處理單元的復(fù)雜電路(包括運(yùn)算器和控制器)做在??或???規(guī)模集成電路的芯?上。把這種微縮的CPU?規(guī)模集成電路稱(chēng)為微處理器。微型計(jì)算機(jī)是以微處理器為核?,再配備上??規(guī)模集成電路?藝制成的存儲(chǔ)器和I/O接?就構(gòu)成了微型計(jì)算機(jī)。以微計(jì)算機(jī)為核?,再配備上系統(tǒng)軟件、I/O設(shè)備、輔助電路和電源就構(gòu)成了微機(jī)系統(tǒng)。微型計(jì)算機(jī)系統(tǒng)包括硬件和軟件了兩?部分。(2)計(jì)算機(jī)中為什么采??進(jìn)制數(shù)表??答:計(jì)算機(jī)是?種電器設(shè)備,內(nèi)部采?的都是電?元件,?電?元件表?兩種狀態(tài)是最容易實(shí)現(xiàn)的,?如電路的通和斷、電壓?低等等,?且也穩(wěn)定和容易控制。把兩種狀態(tài)?0,1來(lái)表?,就是??進(jìn)制數(shù)表?計(jì)算機(jī)內(nèi)部的數(shù)據(jù)。(3)簡(jiǎn)述程序的運(yùn)?過(guò)程。答:即取指令—分析指令—執(zhí)?指令。根據(jù)程序計(jì)數(shù)器PC中的值從程序存儲(chǔ)器讀出現(xiàn)?指令,送到指令寄存器。將指令寄存器中的指令操作碼取出后進(jìn)?譯碼,分析其指令性質(zhì),然后執(zhí)?指令。(4)設(shè)兩個(gè)正的浮點(diǎn)數(shù)如下。1)若是否?定有?2)若S1和S2均為規(guī)格化的數(shù),且,是否?定有?答:1)若不?定有。若S1=11100101B,S2=00100101B當(dāng)P1=01B時(shí),P2=10B時(shí),

故2)若S1和S2均為規(guī)格化的數(shù),且,?定有。浮點(diǎn)規(guī)格表?要求對(duì)浮點(diǎn)?進(jìn)制正數(shù),其尾數(shù)數(shù)字S部分的最?位必須是1,故不會(huì)出現(xiàn)上述情況,當(dāng)時(shí),?定有。4.計(jì)算題(1)計(jì)算?進(jìn)制數(shù)-47的原碼、反碼、補(bǔ)碼(8位?進(jìn)制的形式表?),并說(shuō)明8位?進(jìn)制原碼、反碼、補(bǔ)碼所能表?的數(shù)值范圍(??進(jìn)制表?)。解:[-47]原=10101111[-47]反=11010000[-47]補(bǔ)=110100018位?進(jìn)制原碼表?的范圍為-127~+127,反碼表?的范圍為-127~+127,補(bǔ)碼表?的范圍為-128~+127。(2)將?進(jìn)制數(shù)658.125轉(zhuǎn)換成?進(jìn)制、?進(jìn)制、?六進(jìn)制和BCD碼。解:658/16=41…余數(shù)為241/16=2…余數(shù)為92/16=0…余數(shù)為20.125×16=2?數(shù)部分為0,整數(shù)部分為2658.125D=292.2H=001010010010.0010B=1222.1Q=011001011000.000100100101(BCD數(shù))(3)設(shè)浮點(diǎn)數(shù)的表?格式為階碼4位(包括階符1位)、尾數(shù)8位(包括尾符1位)。階碼和尾數(shù)均?補(bǔ)碼表?。寫(xiě)出?進(jìn)制數(shù)X=-0.0010110011B的規(guī)格化浮點(diǎn)數(shù)表?。解:X=-0.0010110011B=-0.10110011×S=0100110Sf=1J=110Jf=1規(guī)格化浮點(diǎn)數(shù)為111010100110(4)若X=-79,Y=+97,求[-X]補(bǔ),[Y]補(bǔ),[X-Y]補(bǔ),[-X+Y]補(bǔ),[-X-Y]補(bǔ),要求給出求解過(guò)程,并指明運(yùn)算后的溢出情況。解:[-X]補(bǔ)=01001111[X]補(bǔ)=10110001[Y]補(bǔ)=01100001[-Y]補(bǔ)=10011111[X-Y]補(bǔ)=[X]補(bǔ)+[-Y]補(bǔ)=0101000010110001+10011111101010000CS=1,CP=0,負(fù)溢出[-X+Y]補(bǔ)=[-X]補(bǔ)+[Y]補(bǔ)=1011000001001111+0110000110110000CS=0,CP=1,正溢出[-X-Y]補(bǔ)=[-X]補(bǔ)+[-Y]補(bǔ)=1110111001001111+1001111111101110CS=0,CP=0,?溢出

第2章練習(xí)題1.選擇題(1)D(2)A(3)B(4)C(5)C(6)B(7)A(8)A2填空題(1)地址總線的寬度,00000H~0FFFFFH(2)SS,DS,CS,ES(3)第33()引腳(4)SS,DS(5)奇地址區(qū),偶地址區(qū),?8位,低8位3.簡(jiǎn)答題(1)什么是指令周期?什么是總線周期??個(gè)總線周期?少包括?個(gè)時(shí)鐘周期?答:指令周期是?條指令執(zhí)?所需的時(shí)鐘周期,CPU在執(zhí)?指令過(guò)程中,凡需執(zhí)?訪問(wèn)存儲(chǔ)器或訪問(wèn)I/O端?的操作都統(tǒng)?交給BIU的外部總線完成,進(jìn)??次訪問(wèn)所需的時(shí)間稱(chēng)為?個(gè)總線周期。?般?個(gè)基本的總線周期由4個(gè)時(shí)鐘周期組成。(2)8086CPU中,標(biāo)志寄存器包含哪些標(biāo)志位?各標(biāo)志位為‘0’,‘1’分別表?什么含義?答:標(biāo)志寄存器包含狀態(tài)標(biāo)志和控制標(biāo)志,狀態(tài)標(biāo)志包括符號(hào)標(biāo)志、零標(biāo)志、奇/偶標(biāo)志、進(jìn)位標(biāo)志、輔助進(jìn)位標(biāo)志、溢出標(biāo)志,控制標(biāo)志包括?向標(biāo)志、中斷標(biāo)志、跟蹤標(biāo)志。符號(hào)標(biāo)志(SF)?來(lái)指出前?運(yùn)算執(zhí)?后的結(jié)果是正還是負(fù),結(jié)果為負(fù),則SF=1;正,則SF=0。零標(biāo)志(ZF)?來(lái)指出前?運(yùn)算執(zhí)?后的結(jié)果是否為零,結(jié)果為零,則ZF=1;?零,則ZF=0。奇/偶標(biāo)志(PF)?來(lái)指出前?運(yùn)算結(jié)果的低8位中所含的1的個(gè)數(shù)為偶數(shù)還是奇數(shù),結(jié)果為偶,PF=1;當(dāng)執(zhí)?加法運(yùn)算使最?位產(chǎn)?進(jìn)位或執(zhí)?減法運(yùn)算引起最?位產(chǎn)?借位時(shí),CF=1,否則CF=0。輔助進(jìn)位標(biāo)志(AF),當(dāng)執(zhí)?加法運(yùn)算使第3位往第4位上有進(jìn)位或減法運(yùn)算使第3位從第4位有借位時(shí),則AF=1,否則AF=0。溢出標(biāo)志(OF),當(dāng)運(yùn)算的結(jié)果超出了范圍是就會(huì)產(chǎn)?溢出,OF=1,否則OF=0。?向標(biāo)志(DF)在串操作指令中?來(lái)控制串操作過(guò)程中地址的增減,當(dāng)DF=0,則地址不斷遞增;當(dāng)DF=1,則地址會(huì)不斷遞減。中斷標(biāo)志(IF)在中斷過(guò)程中控制是否響應(yīng)可屏蔽中斷的請(qǐng)求,當(dāng)IF=0,則CPU不能響應(yīng)可屏蔽中斷請(qǐng)求;當(dāng)IF=1,則CPU可以接受可屏蔽中斷請(qǐng)求。跟蹤標(biāo)志(TF)在中斷過(guò)程中控制是否響應(yīng)單步中斷的請(qǐng)求,當(dāng)TF=1,則CPU按跟蹤你?式執(zhí)?指令;當(dāng)TF=0,則CPU不會(huì)響應(yīng)單步中斷。(3)8086CPU中有哪些通?寄存器和專(zhuān)?寄存器?說(shuō)明他們的作?。答:4個(gè)通?寄存器,AX:16位的累加器;BX:16位的基數(shù)寄存器,可?于寄存器間接尋址;CX:16位的計(jì)數(shù)寄存器,可作為程序循環(huán)計(jì)數(shù)寄存器;DX:16位的數(shù)據(jù)寄存器,可作為I/O指令專(zhuān)?間接尋址寄存器。4個(gè)專(zhuān)?寄存器,BP:16位的基數(shù)指針寄存器,?來(lái)存放位于堆棧段中的?個(gè)數(shù)據(jù)區(qū)基址的偏移地址;SP:16位的堆棧指針寄存器,存放棧頂?shù)钠频刂?;SI:16位的源變址寄存器,?于存放當(dāng)前數(shù)據(jù)段的偏移地址;DI:16位的?的變址寄存器,也?來(lái)存放當(dāng)前數(shù)據(jù)段的偏移地址。(4)在8086CPU中,已知CS寄存器和IP寄存器的內(nèi)容分別如下所?,請(qǐng)確定其物理地址。1.CS=1000H,IP=2000H答:物理地址:CS*16+IP=10000H+2000H=12000H2.CS=1234H,IP=0C00H答:物理地址:CS*16+IP=12340H+0C00H=12F40H(5)設(shè)(AX)=2345H,(DX)=5219H,請(qǐng)指出兩個(gè)數(shù)據(jù)相加或相減后,FLAG中狀態(tài)標(biāo)志位的狀態(tài)。答:相加:0010001101000101+01010010000110010111010101011110CF=0,SF=0,ZF=0,AF=0,OF=0,PF=0相減:001000110100010101010010000110011101000100101100CF=1,SF=1,ZF=0,AF=1,OF=1,PF=0(6)8086CPU在最?模式下構(gòu)成計(jì)算機(jī)系統(tǒng)?少應(yīng)該包括哪?個(gè)基本的部分?答:??8284A時(shí)鐘發(fā)?器,三?8282或74LS373地址鎖存器,兩?8286總線接收器。(7)簡(jiǎn)述堆棧指?器SP有什么功能?堆棧的操作過(guò)程是怎樣的?試舉例說(shuō)明。答:堆棧指?器(SP)存放棧頂?shù)钠频刂?,以便存取位于?dāng)前堆棧段中的數(shù)據(jù)。舉例:PUSHBX;將寄存器BX的內(nèi)容壓?堆棧。操作過(guò)程分析:執(zhí)?PUSH指令時(shí),SP先?動(dòng)減2,BX的低8位放?SP所指單元中,?8位放?SP+1所指單元中。第3章練習(xí)題1.選擇題(1)D(2)C(3)A(4)A2.填空題(1)字節(jié)遞增8DH,5CH,3BH,1AH(2)遞增(3)60H0(4)1F02C3.問(wèn)答題(1)試分別說(shuō)明換碼指令和串操作指令所?的隱含寄存器及標(biāo)志位,并說(shuō)明各?的?作過(guò)程。答:換碼指令XLAT所?的隱含寄存器為BX和AL。指令“XLAT”的?作過(guò)程:將BX和AL中的值相加,把得到的值作為地址,然后將此地址所對(duì)應(yīng)的單元中的值取到AL中。串操作指令所?的隱含寄存器和標(biāo)志位為CX、SI、DI和DF。字符串傳送指令“REPMOVSB”的?作過(guò)程:將DS:SI邏輯地址所指存儲(chǔ)單元的字節(jié)傳送到ES:DI邏輯地址所指的內(nèi)存單元中,當(dāng)DF=0時(shí),SI和DI均增1,CX減1;當(dāng)DF=1時(shí),SI和DI均減1,CX減1。重復(fù)執(zhí)?上述操作,直到CX=0時(shí)停?。(2)RET與IRET兩條指令有何區(qū)別?并說(shuō)明各?的應(yīng)?場(chǎng)合。答:RET是從堆棧中彈出斷點(diǎn)地址,裝?IP或IP與CS中,從?段內(nèi)返回的?的。主要?于?程序的返回。IRET是中斷返回指令,是專(zhuān)門(mén)為中斷服務(wù)程序返回設(shè)計(jì)的。(3)試分別舉例說(shuō)明8086CPU乘法與除法指令所?的隱含寄存器。答:乘法指令有?符號(hào)數(shù)乘法指令MUL和有符號(hào)數(shù)乘法指令I(lǐng)MUL。MUL隱含寄存器AX,IMUL隱含寄存器AX和DX。如指令“MULDL”的功能是將DL中的內(nèi)容與AL中的內(nèi)容相乘,結(jié)果放在AX中。除法指令也有?符號(hào)數(shù)除法指令DIV和有符號(hào)數(shù)除法指令I(lǐng)DIV。DIV隱含寄存器AX,IDIV隱含寄存器AX和DX。如指令“IDIVBX”的功能是將DX和AX中的32位有符號(hào)數(shù)除以BX中的16位有符號(hào)數(shù),商在AX中,余數(shù)在DX中。(4)簡(jiǎn)述堆棧指?器SP有什么功能?堆棧的操作過(guò)程是怎樣的?試舉例說(shuō)明。(教材P85)(5)8086CPU有哪些操作數(shù)的尋址?式?請(qǐng)分別舉例說(shuō)明。答:8086CPU中操作數(shù)尋址可分為4種:?即尋址、寄存器尋址、存儲(chǔ)器尋址和I/O端?尋址。?即尋址如MOVAX,3412H。寄存器尋址如MOVAX,BX。存儲(chǔ)器尋址可分為五類(lèi):直接尋址如MOVAX,[7834H];寄存器間接尋址如MOVAX,[BX];寄存器相對(duì)尋址如MOVAX,[BX+12H];基址加變址尋址?式如MOVAX,[BX+SI];相對(duì)的基址和變址尋址如MOVAH,[BX+SI+2468H]。I/O端?尋址包括兩類(lèi):直接端?尋址如INAL,27H;間接端?尋址如OUTDX,AL。4.請(qǐng)指出下列指令中源操作數(shù)和?的操作數(shù)的尋址?式。(1)MOVSI,120;?的操作數(shù)為寄存器尋址,源操作數(shù)為?即尋址;(2)MOVBP,[BX];?的操作數(shù)為寄存器尋址,源操作數(shù)為寄存器間接尋址;(3)MOVBX,[200];?的操作數(shù)為寄存器尋址,源操作數(shù)為直接尋址;(4)PUSHDS;源操作數(shù)為寄存器尋址;(5)POPBX;?的操作數(shù)為寄存器尋址;(6)ANDDL,[BX+SI+30H];?的操作數(shù)為寄存器尋址,源操作數(shù)為相對(duì)的基址和變址尋址;5.請(qǐng)寫(xiě)出如下程序?段中每條邏輯運(yùn)算指令執(zhí)?后標(biāo)志ZF、SF、和PF的狀態(tài):MOVAL,4CH;ZF不變,SF不變,PF不變ANDAL,0F0H;ZF=0,SF=0,PF=0ORBL,4CH;ZF=0,SF=0,PF=0XORAL,AL;ZF=1,SF=0,PF=16.請(qǐng)寫(xiě)出如下程序?段中每條算術(shù)運(yùn)算指令執(zhí)?后標(biāo)志CF、ZF、SF、OF、PF和AF的狀態(tài):MOVBL,54H;各標(biāo)志位保持不變ADDBL,4BH;CF=0,ZF=0,SF=1,OF=1,AF=1,PF=0CMPBL,0B6H;CF=1,ZF=0,SF=1,OF=0,AF=0,PF=0SUBBL,BL;CF=0,ZF=1,SF=0,OF=0,AF=1,PF=0INCBL;CF=0,ZF=0,SF=0,OF=0,AF=0,PF=07.(DS)=1000H,(SS)=2500H,(SI)=0100H,(BX)=0800H,(BP)=0600H,指出下列指令的?的操作數(shù)字段尋址?式,并計(jì)算?的操作數(shù)字段的物理地址。(1)MOV[BX],CX

(1)MOV[BX],CX?的操作數(shù)為寄存器間接尋址?的操作數(shù)的物理地址為:DS×16+0800H=10800H(2)MOV[2000H],BX?的操作數(shù)為直接尋址?的操作數(shù)的物理地址為:DS×16+2000H=12000H(3)MOV[BP],BX?的操作數(shù)為寄存器間接尋址?的操作數(shù)的物理地址為:SS×16+0600H=25600H(4)MOV[BP+200],BX?的操作數(shù)為寄存器相對(duì)尋址?的操作數(shù)的物理地址為:SS×16+0600H+C8H=256C8H(5)MOV[BX+300][SI],AX?的操作數(shù)為相對(duì)基址加變址尋址?的操作數(shù)的物理地址為:DS×16+0800H+12CH+0100H=10A2CH8.已知(SS)=800H,(SP)=0040H,(CX)=0AF0H,(DX)=201H。下列指令連續(xù)執(zhí)?,請(qǐng)指出每條指令執(zhí)?后SS、SP、AX、BX寄存器中的內(nèi)容是多少?PUSHCX;SS=0800H,SP=003EH,AX不變,BX不變PUSHDX;SS=0800H,SP=003CH,AX不變,BX不變POPAX;SS=0800H,SP=003EH,AX=0201H,BX不變POPBX;SS=0800H,SP=0040H,AX=0201H,BX=0AF0H9.閱讀下列各?題的指令序列,在后?空格中填?該指令序列的執(zhí)?結(jié)果。(1)MOVDL,37HMOVAL,85HADDAL,DLDAAAL=22H,BL=37H,CF=1(2)MOVDX,1F45HSTCMOVCX,95XORCH,0FFHSBBDX,CXDX=1FB0H,CF=110.已知程序段如下。CMPCX,BXJNCL1JNCL2JMPL3假設(shè)有以下三組CX,BX值,那么在程序執(zhí)?后,分別轉(zhuǎn)向哪??(1)(CX)=D301H,(BX)=D301H答:轉(zhuǎn)向L1(2)(CX)=2E50H,(BX)=8301H答:轉(zhuǎn)向L2(3)(CX)=477BH,(BX)=10DCH答:轉(zhuǎn)向L111.設(shè)4個(gè)BCD碼DT1、DT2、DT3、DT4分別放在AL、AH、CL、CH的低4位,請(qǐng)編寫(xiě)程序段,將這4個(gè)數(shù)按如下要求合并存放到BX寄存器中。BXDT1DT2DT3DT4解:程序段如下:MOVBX,00HANDAX,0F0FHANDCX,0F0FHMOVBL,CLMOVCL,4SHLBL,CLADDBL,CH

ADDBL,CHMOVBH,ALSHLBH,CLADDBH,AH12.請(qǐng)?串操作指令實(shí)現(xiàn)將10~99這90個(gè)數(shù)從2100H開(kāi)始的內(nèi)存單元搬到3100H開(kāi)始的內(nèi)存單元處。解:程序段如下:MOVDS,2000HMOVES,3000HCLDMOVCX,90MOVSI,100HMOVDI,100HREPMOVSB第4章練習(xí)題1.選擇題(1)BC(2)A(3)C(4)D2.問(wèn)答題(1)變量和標(biāo)號(hào)有什么異同之處?答:變量和標(biāo)號(hào)都有三種屬性:段地址、偏移地址及類(lèi)型。變量是存放在存儲(chǔ)器單元中的操作數(shù),其值可以改變,變量的類(lèi)型可以是BYTE(字節(jié))、WORD(字)、DWORD(雙字)等;標(biāo)號(hào)是可執(zhí)?指令語(yǔ)句地址的符號(hào)表?,即?標(biāo)志符來(lái)表?地址,標(biāo)號(hào)的類(lèi)型可以是NEAR(近)或FAR(遠(yuǎn))。(2)簡(jiǎn)述匯編語(yǔ)?中偽指令的基本作?和特點(diǎn),與機(jī)器指令相?有何區(qū)別?答:偽指令語(yǔ)句沒(méi)有對(duì)應(yīng)的機(jī)器代碼,經(jīng)匯編程序匯編后并不產(chǎn)??標(biāo)代碼,由匯編程序?qū)υ闯绦騾R編期間進(jìn)?處理,主要作?是完成變量的定義、存儲(chǔ)器的分配、段結(jié)構(gòu)的定義,段的分配、過(guò)程的定義、程序開(kāi)始和結(jié)束的指?等。?機(jī)器指令由CPU來(lái)執(zhí)?,它的每?條指令語(yǔ)句在源程序匯編時(shí)都要產(chǎn)?可供計(jì)算機(jī)執(zhí)?的指令代碼(即?標(biāo)代碼)。(3)試簡(jiǎn)述宏調(diào)?與?程序調(diào)?各?的作?和相互之間的區(qū)別。答:宏調(diào)?的作?是在定義宏指令后,通過(guò)宏指令來(lái)表?對(duì)應(yīng)的程序?段。?程序調(diào)?的作?是定義?個(gè)由主程序可以?CALL指令調(diào)?的程序。兩者的區(qū)別:宏調(diào)???程序調(diào)?執(zhí)?速度快;?程序調(diào)?使?CALL語(yǔ)句實(shí)現(xiàn),在CPU執(zhí)?時(shí)進(jìn)?處理,?宏調(diào)?由宏匯編軟件MASM中的宏處理程序來(lái)處理;?程序調(diào)??宏調(diào)?節(jié)省內(nèi)存空間;宏調(diào)???程序調(diào)?靈活。(4)8086匯編語(yǔ)?程序中段的類(lèi)型有?種?段定義語(yǔ)句中定位類(lèi)型、組合類(lèi)型和類(lèi)別各起什么作??答:段類(lèi)型有四類(lèi):數(shù)據(jù)段、代碼段、堆棧段、附加段。定位類(lèi)型?于規(guī)定20位的段起始地址。組合類(lèi)型規(guī)定該段與其他段的位置關(guān)系。類(lèi)別名的主要作?是將所有分類(lèi)名相同的邏輯段組成?個(gè)段組。3.根據(jù)題意定義變量(1)將字節(jié)數(shù)據(jù)12H,567H存放在變量DATA1的存儲(chǔ)單元中。DATA1DW12H,567H(2)將字節(jié)數(shù)據(jù)56H,0BCH存放在變量DATA2的存儲(chǔ)單元中。DATA2DB56H,0BCH(3)在DATA3為?地址的存儲(chǔ)單元中連續(xù)存放字節(jié)數(shù)據(jù)5個(gè)‘A’,6個(gè)(1,2,3),20個(gè)空單元。DATA3DB5DUP(‘A’),6DUP(1,2,3),20DUP(?)(4)在STR1為?地址的存儲(chǔ)單元中存放字符串‘HOWAREYOU’。STR1DB‘HOWAREYOU’4.已知某數(shù)據(jù)段經(jīng)匯編后數(shù)據(jù)在存儲(chǔ)器中存放格式如下圖,試寫(xiě)出數(shù)據(jù)段定義。DATA100H(字節(jié)數(shù)據(jù))0AH10HDATA204H重復(fù)15次(字節(jié)數(shù)據(jù))08H08H08H09H

09HDATA377H(字?jǐn)?shù)據(jù))65H6CH63H6FH6DH…解:DATA1DB00H,0AH,10HDATA2DB15DUP(04H,3DUP(08H),09H)DATA3DW6577H,636CH,6D6FH5.設(shè)數(shù)據(jù)段數(shù)據(jù)定義如下。DATASEGMENTSTRDB‘GOODMORNING!’,’$’ADRDW3DUP(0,2,5)DISPDW3DATAENDS(1)畫(huà)出內(nèi)存分配圖。STR47H(字節(jié)數(shù)據(jù))4FH4FH44H20H4DH4FH52H4EH49H4EH47H21H24HADR00H重復(fù)3次(字?jǐn)?shù)據(jù))00H02H00H05H00HDISP03H(字?jǐn)?shù)據(jù))00H(2)分別?兩種求偏移量的指令將STR的偏移地址送BX.解:①LEABX,STR②MOVBX,OFFSETSTR6.寫(xiě)出以下指令在匯編后?標(biāo)程序中對(duì)應(yīng)的指令。7.同時(shí)對(duì)于兩條指令中分別出現(xiàn)的兩個(gè)AND和兩個(gè)OR是不是同?種含義?為什么?(1)MOVBX,1234HGT1000H對(duì)應(yīng)MOVBX,0FFFFH(2)SBBDX,1024SHR3對(duì)應(yīng)SBBDX,0080H(3)ANDAL,7AND47H對(duì)應(yīng)ANDAL,07(4)ORDL,NOT(7OR54H)對(duì)應(yīng)ORDL,A8(5)MOVAX,HIGH(1000H+5)對(duì)應(yīng)MOVAX,0010(6)ADDAX,HIGH1000H+5對(duì)應(yīng)ADDAX,0015注意:匯編后顯?的?即數(shù)均為16進(jìn)制數(shù)

注意:匯編后顯?的?即數(shù)均為16進(jìn)制數(shù)第(3)、(4)條指令中出現(xiàn)的兩個(gè)AND和OR中,前?的AND和OR是指令系統(tǒng)中的指令助記符,是在程序執(zhí)?時(shí)進(jìn)?運(yùn)算的;后?的AND和OR是邏輯運(yùn)算符,是在編程過(guò)程中進(jìn)?運(yùn)算的,邏輯運(yùn)算對(duì)象只能是常數(shù),其結(jié)果也是常數(shù)。8.程序在數(shù)據(jù)段中定義的數(shù)據(jù)如下。DATASEGMENTVAR1DB4,6VAR2DD200DUP(?)DATAENDS以下三條指令分別匯編成什么?(可?即數(shù)?式表?)(1)MOVCL,LENGTHVAR2匯編成MOVCL,C8(2)MOVBL,TYPEVAR1匯編成MOVBL,01(3)MOVBX,SIZEVAR2匯編成MOVBX,0320注意:匯編后顯?的?即數(shù)均為16進(jìn)制數(shù)9.給定宏定義如下。DIFMACROX,YMOVAX,XSUBAX,YENDMABSDIFMACROV1,V2,V3LOCALNEXTPUSHAXDIFV1,V2CMPAX,0JGENEXTNEGAXNEXT:MOVV3,AXPOPAXENDM試展開(kāi)以下調(diào)?,并判定調(diào)?是否有效(展開(kāi)后的指令必須符合8086CPU指令系統(tǒng)要求)。(1)ABSDIFDX,AX,CX+PUSHAX+MOVAX,DX+SUBAX,AX+CMPAX,0+JGENEXT+NEGAX+NEXT:MOVCX,AX+POPAX(2)ABSDIF[100],[DI],BX+PUSHAX+MOVAX,[100]+SUBAX,[DI]+CMPAX,0+JGENEXT+NEGAX+NEXT:MOVBX,AX+POPAX(3)ABSDIF[BX+SI],[BP],100H;調(diào)??效。語(yǔ)法錯(cuò)誤(?即數(shù)的使?)。

10.寫(xiě)?個(gè)宏定義,要求能把任意?個(gè)寄存器的最低位移?另?個(gè)寄存器的最?位中。解:宏定義如下:SMOVMACROX1,X2ANDX1,0001HRORX1,1ANDX2,7FFFHORX2,X1ENDM11.利?DOS功能調(diào)?從鍵盤(pán)輸?60個(gè)字符到緩沖區(qū)BUF中,在按下ENTER鍵后在屏幕上顯?這些字符。請(qǐng)寫(xiě)出程序段。解:程序段如下:DATASEGMENTBUFDB60;?戶(hù)定義存放60個(gè)字節(jié)的緩沖區(qū)NUMBDB?;系統(tǒng)填?實(shí)際輸?字符字節(jié)數(shù)CHARSDB60DUP(?);存放輸?字符的ASCII碼值DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,OFFSETBUFMOVAH,0AHINT21HXORBX,BXMOVBL,NUMBMOVCHARS[BX],’$’;字符串后加?個(gè)結(jié)束符MOVDL,0DH;回車(chē)MOVAH,2INT21HMOVDL,0AH;換?MOVAH,2INT21HMOVDX,OFFSETCHARSMOVAH,9INT21HMOVAH,4CHINT21HCODEENDSENDSTART第5章練習(xí)題2.讀程序(1)欲把AX寄存器的內(nèi)容倒序,即D15→D0,D14→D1,…,D0→D15,請(qǐng)?jiān)诳崭裉幪钌险_的指令。MOVBX,AXMOVCX,16AGAIN:RCLBX,1RCRAX,1LOOPAGAIN(2)若要完成50-(1+2+3+4+5)的運(yùn)算,并把最終運(yùn)算結(jié)果轉(zhuǎn)換成分離8421BCD碼,?位->AH,低位->AL,請(qǐng)?jiān)诳崭裉幪钌险_的指令。MOVCX,5MOVAX,50NEXT:SUBAX,CXLOOPNEXTAAM(3)有?輸出設(shè)備,8位狀態(tài)端?地址為62H,最?位為時(shí),CPU可以向該設(shè)備的8位數(shù)據(jù)端?(地址61H)發(fā)送數(shù)據(jù);否則,等待。根據(jù)題意,請(qǐng)?jiān)诳崭裉幪钌险_的指令。

題意,請(qǐng)?jiān)诳崭裉幪钌险_的指令。WAIT:INAL,62HTESTAL,80HJNZWAITOUT61H,AL(4)要求把源串AREA1中的100個(gè)字傳送給?的串AREA2,指針按地址增量?向修改,請(qǐng)?jiān)诳崭裉幪顚?xiě)正確的指令。MOVSI,OFFSETAREA1MOVDI,OFFSETAREA2MOVCX,100CLDREPMOVSW2.編程題(1)試編寫(xiě)?程序,把數(shù)組STRING中存放的20個(gè)8位?進(jìn)制數(shù)分成正數(shù)數(shù)組和負(fù)數(shù)數(shù)組,并統(tǒng)計(jì)正數(shù)、負(fù)數(shù)和零的個(gè)數(shù),結(jié)果分別存放在P、M、Z三個(gè)單元。DATASEGMENTSTRINGDB20DUP(?)POSIDB20DUP(?)NEGADB20DUP(?)PDB00HMDB00HZDB00HDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXXORBX,BXMOVSI,BXMOVDI,BXMOVCX,20LP:MOVAL,STRING[BX]CMPAL,0JGEP1MOVNEGA[DI],ALINCDIINCMJMPNEXTP1:JNEP2INCZJMPNEXTP2:MOVPOSI[SI],ALINCSIINCPNEXT:INCBXLOOPLPMOVAH,4CHINT21HCODEENDSENDSTART(2)試編寫(xiě)?程序,完成10個(gè)?位?進(jìn)制數(shù)累加,累加結(jié)果以分離式BCD碼形式存放于AH(?位),AL(低位)寄存器。DATASEGMENTSTRINGDB‘1112220004’DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATA

START:MOVAX,DATAMOVDS,AXMOVCX,10XORBX,BXMOVAX,0LP:ADDAL,STRING[BX]AAAINCBXLOOPLPMOVAH,4CHINT21HCODEENDSENDSTART(3)試編寫(xiě)?程序,將2個(gè)字節(jié)的?進(jìn)制數(shù),變換成?ASCII碼表?的四位?六進(jìn)制數(shù)(?四字節(jié)表?)。DATASEGMENTNUMDW12345;0~65535ASCDB4DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVBX,NUMLEADI,ASCMOVCX,0404HLP1:ROLBX,CLMOVDL,BLANDDL,0FHCMPDL,10JBLP2ADDDL,7LP2:ADDDL,‘0’MOV[DI],DLINCDIDECCHJNZLP1MOVAH,4CHINT21HCODEENDSENDSTART(4)試?串操作指令SCAS,在10個(gè)字節(jié)的數(shù)據(jù)塊BLOCK中,搜索與2EH相等的數(shù),若找到,則將該數(shù)地址存放于ADR中,并在SIGNAL單元中作標(biāo)記0FFH;否則,SIGNAL為00H。DATASEGMENTBLOCKDB26H,27H,28H,29H,2AH,2BH,2CH,2DH,2EH,2FHADRDW?SIGNALDB?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATASTART:MOVAX,DATAMOVDS,AXMOVES,AXMOVDI,OFFSETBLOCKCLDMOVCX,10MOVAL,2EH

MOVAL,2EHREPNZSCASBJNZAAMOVSIGNAL,0FFHDECDIMOVADR,DIJMPNEXTAA:MOVSIGNAL,00HNEXT:MOVAH,4CHINT21HCODEENDSENDSTART(5)請(qǐng)按如下說(shuō)明編寫(xiě)?程序。?程序功能:把?ASCII碼表?的兩位?進(jìn)制數(shù)轉(zhuǎn)換為壓縮BCD碼。??參數(shù):DH:?位數(shù)的ASCII碼,DL:個(gè)位數(shù)的ASCII碼。出?參數(shù):AL:對(duì)應(yīng)壓縮BCD碼。TRANSPROCNEARPUSHCXPUSHDXMOVCL,4SUBDH,‘0’SUBDL,‘0’SHLDH,CLADCDL,DHMOVAL,DLPOPCXPOPDXRETTRANSENDP(6)編寫(xiě)?程序,計(jì)算100個(gè)16位正整數(shù)之和,如果和不超過(guò)16位字的范圍(0~65535),則保存其和到SUM,如超過(guò)則顯?“Overflow!”。DATASEGMENTDAT1DW25DUP(0034H,0345H,0000H,0000H)SUMDW?STRINGDB‘Overflow!’,0DH,0AH,’$’DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVSI,OFFSETDAT1MOVBX,OFFSETSUMMOVCX,100XORAX,AXL1:ADCAX,[SI]JCOVERINCSIINCSILOOPL1MOV[BX],AXJMPNEXTOVER:MOVDX,OFFSETSTRINGMOVAH,9INT21HNEXT:MOVAH,4CHINT21H

INT21HCODEENDSENDSTART3.問(wèn)答題(1)匯編語(yǔ)?程序的開(kāi)發(fā)有哪些步驟,其?作過(guò)程需哪些軟件來(lái)實(shí)現(xiàn)?可產(chǎn)?哪些輸出?件?答:步驟如下:1)明確任務(wù),確確算法2)繪制流程圖3)編寫(xiě)匯編語(yǔ)?程序4)上機(jī)調(diào)試程序。編寫(xiě)匯編語(yǔ)?程序時(shí):1)需要EDIT.COM軟件建?源程序?件,并保存為.ASM?件。2)需MASM.EXE軟件匯編源程序?件,可產(chǎn)?擴(kuò)展名為OBJ的?標(biāo)?件、擴(kuò)展名為L(zhǎng)ST的列表?件和擴(kuò)展名為CRF的對(duì)照?件。3)需要LINK.EXE軟件與?標(biāo)?件連接,可產(chǎn)?擴(kuò)展名為EXE的可執(zhí)??件、擴(kuò)展名為MAP的列表?件和擴(kuò)展名為L(zhǎng)IB的庫(kù)?件。上機(jī)調(diào)試時(shí),需要DEBUG.EXE調(diào)試軟件。(2)程序結(jié)束軟中斷有哪?種實(shí)現(xiàn)?法?有什么區(qū)別?答:程序結(jié)束軟中斷有三種實(shí)現(xiàn)?法:INT20H、INT21H、INT27H。INT20H的功能是終?當(dāng)前進(jìn)程,關(guān)閉所有打開(kāi)的?件,清除磁盤(pán)緩沖區(qū),返回控制臺(tái)的命令接收狀態(tài),實(shí)現(xiàn)程序退出時(shí),不需要任何??于系統(tǒng)功能調(diào)?,該軟中斷包括3種情況:?返回程序結(jié)束(??參數(shù)AH=0,?返回號(hào))、程序結(jié)束并駐留(??參數(shù)AH=31H,返回號(hào)AL=1)、帶返回程序結(jié)束(??參數(shù)AH=4CH,返回號(hào)AL=1)。INT27H于駐留退出,??參數(shù)DX=XX設(shè)置駐留程序的長(zhǎng)度。(3)?匯編語(yǔ)?編程序有哪?種結(jié)構(gòu)?答:順序結(jié)構(gòu);分?結(jié)構(gòu);循環(huán)結(jié)構(gòu);?程序結(jié)構(gòu)。(4)?程序結(jié)構(gòu)中,主程序和?程序之間傳遞有哪?種?法?答:參數(shù)傳遞的實(shí)現(xiàn)?案可分為:寄存器傳送、固定緩沖區(qū)傳送、地址表傳送、堆棧傳送。第6章練習(xí)題1.選擇題(1)C,(2)B,(3)C

2.填空題(1)隨機(jī)存取存儲(chǔ)器,丟失,只讀存儲(chǔ)器,不會(huì)丟失(2)電荷,電荷泄露,刷新(3)128,10(4)48000H,4FFFFH,32K3.簡(jiǎn)答題(1)半導(dǎo)體存儲(chǔ)器的主要性能指標(biāo)有哪些?答:半導(dǎo)體存儲(chǔ)器的主要性能指標(biāo)有:存儲(chǔ)容量、存取速度、功耗、可靠性、價(jià)格。(2)存儲(chǔ)器芯?由哪?部分組成?各部分功能是什么?答:存儲(chǔ)芯?由存儲(chǔ)矩陣、地址譯碼器、存儲(chǔ)器控制電路、三態(tài)雙向緩沖器組成。存儲(chǔ)矩陣的功能是把能夠寄存?進(jìn)制信息的基本電路的集合體的這些基本存儲(chǔ)電路按陣列形式排列和編址;地址譯碼器的功能是將CPU發(fā)送來(lái)的地址信號(hào)進(jìn)?譯碼后產(chǎn)?地址編碼,以便選中存儲(chǔ)矩陣中的某?個(gè)或某?個(gè)基本存儲(chǔ)電路,使其在存儲(chǔ)器控制邏輯的控制下進(jìn)?讀/寫(xiě)操作;存儲(chǔ)器控制電路通過(guò)相應(yīng)的信號(hào)引腳,接收來(lái)?CPU或外部電路的控制信號(hào),經(jīng)組合變換,產(chǎn)?芯?內(nèi)部各部分的控制信號(hào);三態(tài)雙向緩沖器的作?是使組成半導(dǎo)體RAM的各個(gè)存儲(chǔ)芯?很?便地與系統(tǒng)數(shù)據(jù)總線相連接。(3)簡(jiǎn)述SRAM和DRAM的各?特點(diǎn)。答:SRAM的特點(diǎn)為速度快,不必配合內(nèi)存刷新電路,可提?整體的?作效率,但集成度低,功耗較?,相同的容量體積較?。DRAM的特點(diǎn)是需要刷新來(lái)補(bǔ)充電荷。(4)DRAM為什么要刷新?存儲(chǔ)系統(tǒng)如何進(jìn)?刷新?答:DRAM由電容組成,通過(guò)?低電平表?存儲(chǔ)的狀態(tài),由于是電容器作為載體,產(chǎn)?電荷泄露,故需要刷新來(lái)補(bǔ)充電荷。刷新按?進(jìn)?,即每當(dāng)CPU或外部電路對(duì)動(dòng)態(tài)存儲(chǔ)器提供?個(gè)?地址信號(hào),使存儲(chǔ)體中的某??被選中,同時(shí)令列地址?效,即關(guān)閉所有的列選通道,這樣,該?中所有基本存儲(chǔ)電路的數(shù)據(jù)將在內(nèi)部讀出,并在相應(yīng)列刷新放?器作?下被放?和刷新。(5)什么是?速緩沖器?與主體有什么關(guān)系?基本?作原理是什么?答:?速緩沖器為緩存,位于CPU與內(nèi)存之間的臨時(shí)存儲(chǔ)器,以提?CPU數(shù)據(jù)輸?輸出速率。?速緩沖器的原理是根據(jù)局部性原理,把主存儲(chǔ)器中訪問(wèn)概率?的內(nèi)容存放在緩沖器中,當(dāng)CPU需要讀取數(shù)據(jù)時(shí)就?先在緩沖器中查找是否有所需內(nèi)容,如果有則直接從緩沖器中讀取;若沒(méi)有則再主存中讀取該數(shù)據(jù),然后同時(shí)送往CPU的?速緩沖器。3.?個(gè)5124的RAM芯?需要多少根地址線?多少根數(shù)據(jù)線?若要組成?個(gè)64K8的存儲(chǔ)器,需要多少個(gè)RAM芯??多少芯?組?多少根芯?組選擇地址線?答:?個(gè)5124的RAM芯?需要9根地址線,4根數(shù)據(jù)線。組成?個(gè)64K8的存儲(chǔ)器需要256個(gè)RAM芯?,128個(gè)芯?組,7根芯?組選擇地址線。4.由Intel2164DRAM芯?組成?個(gè)64K8的存儲(chǔ)器,共需多少個(gè)DRAM芯??若進(jìn)?刷新操作,需要?次才能刷新完畢?答:組成?個(gè)64K8的存儲(chǔ)器,共需8個(gè)DRAM芯?。需要128次才能刷新完畢,7個(gè)觸發(fā)器。第7章練習(xí)題1.選擇題(1)B(2)A、B(3)C2.填空題(1)01B0H,01B3H,4(2)8,36(3)中斷請(qǐng)求、中斷判優(yōu)、中斷響應(yīng)、中斷服務(wù)、中斷返回3.問(wèn)答題(1)試說(shuō)明8086CPU對(duì)INTR的響應(yīng)過(guò)程。若某外部中斷源接?8086CPU系統(tǒng),試說(shuō)明應(yīng)做哪?個(gè)??的?作才能使該中斷正常?作。答:響應(yīng)過(guò)程:1)CPU在每執(zhí)?完?條指令后,?動(dòng)檢測(cè)是否有INTR中斷請(qǐng)求;2)判斷是否響應(yīng)INTR線上的中斷請(qǐng)求;3)確定中斷向量地址;4)保存斷點(diǎn);5)執(zhí)?中斷服務(wù)程序;6)中斷返回。若外部中斷源接?8086系統(tǒng),應(yīng)做:1)設(shè)置8259A的初始化命令字和相關(guān)操作命令字;2)系統(tǒng)開(kāi)中斷。(2)說(shuō)明軟中斷與?程序調(diào)?在使?時(shí)有何區(qū)別。答:軟中斷是由CPU根據(jù)程序的某條指令或者程序員對(duì)標(biāo)志寄存器中某個(gè)標(biāo)志位的設(shè)置?產(chǎn)?的;?程序調(diào)?是由CALL指令引起的。(3)采?DMA?式為什么能進(jìn)??速數(shù)據(jù)傳送?答:DMA是?種直接存儲(chǔ)器存取?式,利?這種?式,可以在沒(méi)有CPU?預(yù)的情況下,存儲(chǔ)器與外設(shè)之間或存儲(chǔ)器與存儲(chǔ)器之間進(jìn)?直接數(shù)據(jù)傳輸,這樣可以??提?數(shù)據(jù)傳輸?shù)乃俣取#?)簡(jiǎn)述DMA控制器8237A的?作周期。答:8237A在系統(tǒng)中的?作狀態(tài)可分為兩種?作周期:DMA空閑周期和DMA有效周期。當(dāng)8237A的所有通道均沒(méi)有DMA請(qǐng)求時(shí),芯?即處于空閑周期,此時(shí)8237A作為普通接?芯?受CPU控制,處于從屬狀態(tài)。當(dāng)8237A采樣到某通道有DMA請(qǐng)求,即向CPU發(fā)總線請(qǐng)求信號(hào),?旦獲得總線控制權(quán)則由空閑周期進(jìn)?有效周期,此時(shí)8237A作為系統(tǒng)的主控芯?,處于主控狀態(tài).(5)8237A在進(jìn)?單字節(jié)?式DMA傳送和塊傳送時(shí),有什么區(qū)別?

(5)8237A在進(jìn)?單字節(jié)?式DMA傳送和塊傳送時(shí),有什么區(qū)別?答:1)單字節(jié)傳送?式:每次DMA操作僅傳送?個(gè)字節(jié)數(shù)據(jù),傳送后當(dāng)前地址寄存器加1或減1,并將當(dāng)前字節(jié)計(jì)數(shù)器減1,保持請(qǐng)求信號(hào)HQR?效,交出總線控制權(quán),隨后再次請(qǐng)求DMA傳送下?個(gè)字節(jié)數(shù)據(jù),如此往復(fù)直到當(dāng)前字節(jié)計(jì)數(shù)器減為0FFFFH時(shí)終?。2)數(shù)據(jù)塊傳送?式:8237A?旦獲得總線控制權(quán),便開(kāi)始連續(xù)傳送數(shù)據(jù),每傳送?個(gè)字節(jié)就?動(dòng)修改地址,并使要傳送的字節(jié)數(shù)減1,直到當(dāng)前字節(jié)計(jì)數(shù)器減為0FFFFH時(shí)產(chǎn)?終?信號(hào),或者受到外部的信號(hào)時(shí)結(jié)束傳送,交出總線權(quán)。4.下?是?個(gè)對(duì)8259A進(jìn)?初始化的程序,請(qǐng)加上注釋?zhuān)⒕唧w說(shuō)明各初始化命令字的含義。MOVAL,13H;設(shè)置ICW1命令字邊沿觸發(fā)?式,單?8259A需要設(shè)置ICW4MOVDX,40HOUTDX,ALINCDX;DX增1,為設(shè)置下?的命令字做準(zhǔn)備MOVAL,08H;設(shè)置ICW2中斷類(lèi)型號(hào)為從08H~0FHOUTDX,ALMOVAL,09H;設(shè)置ICW4為8088模式,?般EOI緩沖?式,全嵌套?式OUTDX,AL系統(tǒng)分配給8259A的I/O地址為40H和41H5.設(shè)8259A的偶地址是1000H,試編寫(xiě)屏蔽8259A中的IR3,IR4和IR6中斷請(qǐng)求的程序。MOVDX,1000H;指向8259A的偶地址MOVAL,01011000B;使IMR的D3、D4、D6位為10UTDX,AL8259A的OCW1可以實(shí)現(xiàn)中斷源的屏蔽與開(kāi)放。6.某8086CPU系統(tǒng)的中斷系統(tǒng)由兩?8259A級(jí)聯(lián)組成,從?聯(lián)在主?的IR3上,主、從8259A的IR5上各接有?個(gè)外部中斷源,其中斷類(lèi)型碼分別為0DH,95H。假設(shè)它們的中斷??地址均在同?段中,段基址為1000H,偏移地址分別是200H,300H;所有中斷都采?邊沿觸發(fā)?式、全嵌套?式、正常EOI結(jié)束?式。(1)寫(xiě)出主、從8259A中斷向量地址的范圍;(2)試編寫(xiě)全部初始化程序。解:(1)主8259A的中斷類(lèi)型碼的范圍為:08H3CH。從8258A的中斷類(lèi)型碼的范圍:90H0FH,中斷向量地址的范圍為:20H97H,中斷向量地址25CH。范圍為:240H(2)主8259A初始化程序段MOVAX,00HMOVDS,AX;中斷向量表的段地址為0000HMOVBX,0DH4;取中斷向量地址MOVAX,200H;取中斷向量并送?中斷向量表MOV[BX],AXMOVAX,1000HMOV[BX+2],AXMOVAL,00010001B;ICW1邊沿觸發(fā),級(jí)聯(lián)?式,寫(xiě)?ICW4OUT30H,ALMOVAL,08H;ICW2中斷類(lèi)型號(hào)范圍OUT31H,ALMOVAL,00000100B;ICW3從?聯(lián)在主?的IR3上OUT31H,ALMOVAL,00011101B;ICW4全嵌套?式,正常EOI結(jié)束?式OUT31H,AL從8259A初始化程序段MOVAX,00HMOVDS,AX;中斷向量表的段地址為0000HMOVBX,95H4;取中斷向量地址MOVAX,300H;取中斷向量并送?中斷向量表MOV[BX],AXMOVAX,1000HMOV[BX+2],AXMOVAL,00010001BOUT36H,ALMOVAL,90HOUT37H,ALMOVAL,00000011

MOVAL,00000011OUT37H,ALMOVAL,00017.設(shè)計(jì)8237A的初始化程序。要求:通道0?作于快傳送寫(xiě)模式,地址加1變化,允許?動(dòng)預(yù)置功能;通道1?作于單字節(jié)傳送,地址減1變化,禁??動(dòng)預(yù)置功能;通道2、通道3和通道1?作于相同的?式。8237A的DACK為?電平有效,DREQ為低電平有效,采?循環(huán)優(yōu)先級(jí)?式啟動(dòng)8237A?作。MOVDX,DMA+0DH;DMA+0DH為復(fù)位命令端?地址MOVAL,0;發(fā)復(fù)位命令OUTDX,ALMOVAL,10110100B;設(shè)置通道0?式字MOVDX,DMA+0BHOUTDX,ALMOVAL,01001001B;設(shè)置通道1?式字MOVDX,DMA+0BHOUTDX,ALMOVAL,01001010B;設(shè)置通道2?式字MOVDX,DMA+0BHOUTDX,ALMOVAL,01001011B;設(shè)置通道3?式字M0VDX,DMA+0BHOUTDX,ALMOVAL,10010000B;設(shè)置控制字MOVDX,DMA+08HOUTDX,AL8.試編寫(xiě)程序段,要求利?8237A在存儲(chǔ)區(qū)的兩個(gè)區(qū)域BUF1和BUF2之間直接傳送數(shù)據(jù),傳送的數(shù)據(jù)長(zhǎng)度為64KBMOVAL,04HMOVDX,DMA+08H;控制寄存器端?OUTDX,AL;設(shè)控制字,禁?8237A?作MOVDX,DMA+0DH;復(fù)位命令端?OUTDX,AL;發(fā)復(fù)位命令MOVDX,DMA+00H;通道0地址寄存器端?MOVAX,BUF1;源數(shù)據(jù)區(qū)?址OUTDX,AL;寫(xiě)?地址低8位MOVAL,AHOUTDX,AL;寫(xiě)?地址?8位MOVDX,DMA+02H;通道1基地址與當(dāng)前地址MOVAX,BUF2;?的數(shù)據(jù)區(qū)?址OUTDX,AL;寫(xiě)?地址低8位MOVAL,AHOUTDX,AL;寫(xiě)?地址?8位MOVDX,DMA+03H;通道1基計(jì)數(shù)與當(dāng)前字節(jié)計(jì)數(shù)MOVAX,0FFFFHOUTDX,AL;寫(xiě)?初始值低8位MOVAL,AHOUTDX,AL;寫(xiě)?初始值?8位MOVDX,DMA+0CH;先/后觸發(fā)器端?OUTDX,AL;清先/后觸發(fā)器端?MOVDX,DMA+0BH;?式寄存器端?MOVAL,88HOUTDX,AL;設(shè)通道0?式字,數(shù)據(jù)塊讀增量MOVDX,DMA+0CHOUTDX,AL;清先/后觸發(fā)器端?MOVDX,DMA+0BH;?式寄存器端?MOVAL,85HOUTDX,AL;設(shè)通道1?式字,數(shù)據(jù)塊寫(xiě)增量MOVDX,DMA+0CH

MOVDX,DMA+0CHOUTDX,AL;清先/后觸發(fā)器端?MOVDX,DMA+0FH;主屏蔽字端?MOVAL,0CHOUTDX,AL;屏蔽通道2、3MOVDX,DMA+0CHOUTDX,AL;清先/后觸發(fā)器端?MOVDX,DMA+08H;控制寄存器端?MOVAL,01HOUTDX,AL;設(shè)控制字,允許存儲(chǔ)器到存儲(chǔ)器,啟動(dòng)8237A?作MOVDX,DMA+0CHOUTDX,AL;清先/后觸發(fā)器端?MOVDX,DMA+09H;請(qǐng)求寄存器端?MOVAL,04HOUTDX,AL;向通道0發(fā)出DMA請(qǐng)求MOVDX,DMA+08H;讀狀態(tài)寄存器端?AA1:INAL,DXJZAA1MOVDX,DMA+0CHOUTDX,AL;清先/后觸發(fā)器端?MOVDX,DMA+09H;請(qǐng)求寄存器端?MOVAL,00HOUTDX,AL;通道0撤銷(xiāo)DMA請(qǐng)求MOVDX,DMA+0CHOUTDX,AL;清先/后觸發(fā)器端?MOVDX,DMA+08H;設(shè)控制字MOVAL,04HOUTDX,AL;禁?8237A?作HLT

第8章練習(xí)題1.選擇題(1)C(2)B2.填空題設(shè)某接?的狀態(tài)端?地址為100H,狀態(tài)位從D7位輸?,數(shù)據(jù)端?的地址為200H,輸?數(shù)據(jù)的總字節(jié)數(shù)為200,輸?數(shù)據(jù)段放在內(nèi)存單元的?地址為300,查詢(xún)式輸?數(shù)據(jù)的程序段如下。MOVSI,300MOVCX,200INPUT:INAL,100HTESTAL,80HJZINPUTINAL,200HMOV[SI],ALINCSILOOPINPUT3.問(wèn)答題(1)當(dāng)接?電路與系統(tǒng)總線相連接時(shí),為什么要遵循“輸?要經(jīng)過(guò)三態(tài),輸出要鎖存”的原則?答:接?電路是介于主機(jī)和外設(shè)之間的?種緩沖電路,它使外設(shè)與總線隔離,起緩沖、暫存數(shù)據(jù)的作?。因?yàn)閿?shù)據(jù)總線是各種設(shè)備以及存儲(chǔ)器傳送數(shù)據(jù)的公共總線,任何設(shè)備都不允許長(zhǎng)期占?數(shù)據(jù)總線,?僅允許被選中的設(shè)備在讀/寫(xiě)周期中享?數(shù)據(jù)總線,這就需要接?電路為輸?設(shè)備提供三態(tài)緩沖作?,只在讀/寫(xiě)周期中為被選中的設(shè)備開(kāi)放與系統(tǒng)數(shù)據(jù)總線的連接,即輸?要經(jīng)三態(tài);另外,對(duì)于輸出接?,當(dāng)快速的CPU要將數(shù)據(jù)傳送到慢速的外設(shè)時(shí),事先需要把數(shù)據(jù)送到鎖存器中,等外設(shè)做好接收數(shù)據(jù)的準(zhǔn)備?作后再把數(shù)據(jù)取?。(2)I/O接?的主要功能有哪些??般有哪兩種編址?式??jī)煞N編址?式各?有什么特點(diǎn)?答:I/O接?的主要功能有:l)解決CPU與外設(shè)之間速度不匹配問(wèn)題;2)實(shí)現(xiàn)信號(hào)電平的轉(zhuǎn)換;3)實(shí)現(xiàn)信號(hào)格式的轉(zhuǎn)換;I/O端?的編址?式有兩種:統(tǒng)?編址?式和獨(dú)?編址?式。統(tǒng)?編址?式:優(yōu)點(diǎn)是簡(jiǎn)化了指令系統(tǒng)的設(shè)計(jì),訪問(wèn)I/O設(shè)備的指令類(lèi)型多、功能強(qiáng),I/O地址空間可?可?。缺點(diǎn)是I/O端?占?了存儲(chǔ)單元的地址空間,且I/O譯碼電路變得較復(fù)雜。訪問(wèn)存儲(chǔ)器的指令?般要?較長(zhǎng),這樣延長(zhǎng)了輸?輸出操作時(shí)間。獨(dú)?編址?式:優(yōu)點(diǎn)是可讀性好,I/O指令長(zhǎng)度短,執(zhí)?的速度快,占?內(nèi)存空間少,I/O地址譯碼電路較簡(jiǎn)單。缺點(diǎn)是CPU指令系統(tǒng)中必須有專(zhuān)門(mén)的IN和OUT指令,?且這些指令的功能沒(méi)有訪問(wèn)存儲(chǔ)器的指令強(qiáng)。(3)按照與CPU之間數(shù)據(jù)傳輸?shù)?向分,可以將外部設(shè)備分為哪?類(lèi)?外設(shè)與CPU之間傳輸?shù)男盘?hào)可以分為哪三種?答:按照與CPU之間數(shù)據(jù)傳輸?shù)?向分,可以將外部設(shè)備分為三類(lèi):輸?設(shè)備、輸出設(shè)備及I/O復(fù)合設(shè)備。外設(shè)與CPU之間傳輸?shù)男盘?hào)可以分為三類(lèi):數(shù)據(jù)信號(hào)、狀態(tài)信號(hào)、控制信號(hào)。(4)何為總線?系統(tǒng)總線實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)牟僮鬟^(guò)程是如何在主控模塊的控制下進(jìn)?的?答:?于各部件之間傳送信息的公共信號(hào)線稱(chēng)為總線。若系統(tǒng)總線上只有?個(gè)主控模塊,就沒(méi)有總線請(qǐng)求階段,但當(dāng)系統(tǒng)總線上有多個(gè)主控模塊時(shí),則需提出申請(qǐng),由總線仲裁部分確定總線使?權(quán)。主控模塊取得總線使?權(quán)后,通過(guò)地址總線發(fā)出本次打算訪問(wèn)的從屬模塊的地址,通過(guò)數(shù)據(jù)總線發(fā)出相關(guān)命令。當(dāng)主控模塊和從屬模塊之間聯(lián)系成功后,就可以進(jìn)?數(shù)據(jù)傳輸,數(shù)據(jù)由源模塊發(fā)出經(jīng)數(shù)據(jù)總線送??的模塊。當(dāng)數(shù)據(jù)傳輸完成后,當(dāng)前主控模塊的有關(guān)信息均從系統(tǒng)總線上撤除,讓出總線的控制權(quán)。(5)根據(jù)總線中信息傳送的類(lèi)型可分為哪?種?若按總線的規(guī)模、?途和應(yīng)?場(chǎng)合?可分成哪?類(lèi)??般總線完成?次數(shù)據(jù)傳輸?shù)牟僮鬟^(guò)程可分為哪4個(gè)階段?答:根據(jù)總線中信息傳送的類(lèi)型可分為三種:地址總線、數(shù)據(jù)總線和控制總線。按總線的規(guī)模、?途和應(yīng)?場(chǎng)合?可分成四類(lèi):芯?內(nèi)部總線、元件級(jí)總線、系統(tǒng)總線和外部總線。?般總線完成?次數(shù)據(jù)傳輸?shù)牟僮鬟^(guò)程可分為4個(gè)階段:總線請(qǐng)求階段、尋址階段、傳輸階段、結(jié)束階段。4.在8086微型計(jì)算機(jī)系統(tǒng)中,有?外設(shè)的接?地址為2A8H~2AFH,請(qǐng)?74LS138譯碼器設(shè)計(jì)符合要求的地址譯碼電路。解:該接?共有8個(gè)端?地址,取地址碼最低3位A2、A1、A0作為接?內(nèi)不同端?的選擇。?13位地址碼譯出本接?的選擇地址2A8HA15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A00000001010101XXX在最?模式下,譯碼電路如下。

5.某系統(tǒng)分別?74LS244和74LS273作為輸?輸出接?。其輸??的地址為1000H,輸出?的地址為2000H,試編寫(xiě)程序,當(dāng)輸??的bit1,bit3和bit5位同時(shí)為1時(shí),把以DATA為?地址的50個(gè)單元的數(shù)據(jù)從輸出?輸出;如果不滿(mǎn)?上述條件則等待。MOVSI,OFFSETDATAMOVCX,50LP1:MOVDX,1000HINAL,DXANDAL,2AHCMPAL,2AHJNZLP1OUTPUT:MOVAL,[SI]MOVDX,2000HOUTDX,ALINCSILOOPOUTPUT6.?個(gè)采?查詢(xún)式數(shù)據(jù)傳送的輸出接?,其數(shù)據(jù)端?地址為300H,狀態(tài)端?地址為301H,外設(shè)狀態(tài)位?D7位表?,并約定低電平有效。如果要將存儲(chǔ)器緩沖區(qū)DATA中的200個(gè)字節(jié)數(shù)據(jù)通過(guò)該輸出?輸出,畫(huà)出流程圖,編寫(xiě)控制程序段。程序段為:LEASI,DATAMOVCX,200LP1:MOVDX,301HINAL,DXTESTAL,80HJNZLP1DECDXMOVAL,[SI]OUTDX,ALINCSILOOPLP1

第9章1、(1)D(2)C(3)A(4)D(5)C(6)D(7)C(8)A2、填空題(1)3,基本輸?/輸出?式,選通輸?/輸出?式,雙向總線I/O?式(2)外設(shè)響應(yīng)信號(hào)(3)?式選擇控制字,置位/復(fù)位控制字(4)中斷允許信號(hào),PC的某些位(5)移位,移位(6)低電平,8(7)5.36s(8)發(fā)送線、接收線、信號(hào)地線3.問(wèn)答題(1)并?接?和串?接?各有哪些特點(diǎn)?答:并?接?的特點(diǎn):1)通過(guò)多根信號(hào)線同時(shí)傳送多位數(shù)據(jù);2)多?于傳輸距離短,數(shù)據(jù)量?,速度?的實(shí)時(shí)傳輸場(chǎng)合;3)傳送時(shí)?般不需要特定的數(shù)據(jù)傳送格式。串?接?特點(diǎn):所需傳送線少,成本低,?且能實(shí)現(xiàn)遠(yuǎn)距離通信。但傳送速度較慢。(2)8255A的三種?作?式有何不同?三個(gè)8位的數(shù)據(jù)端?功能有何異同?答:8255A的三種?作?式為:基本輸?/輸出?式(?式0)、選通輸?/輸出?式(?式1)、雙向總線I/O?式(?式2)。?式0沒(méi)有專(zhuān)門(mén)的聯(lián)絡(luò)信號(hào),?般只能?于簡(jiǎn)單的、?條件的傳輸場(chǎng)合,端?A、B、C均可?作于該?式下。?式1端?A、B的輸?輸出受端?C相應(yīng)位控制。?式2時(shí)可實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸,只有端?A可以?作在?式2。三個(gè)8位的數(shù)據(jù)端?:端?A、端?B和端?C。端?A可以設(shè)置為輸?端?,也可以設(shè)置為輸出端?,還可以設(shè)置為雙向的8位數(shù)據(jù)端?,輸?/輸出時(shí)端?都具有鎖存器、緩沖器,具有三種?作?式,是功能最齊全的數(shù)據(jù)端?。端?B可以設(shè)置為輸?端?,也可以設(shè)置為輸出端?,但不能設(shè)置為雙向數(shù)據(jù)端?,端?B輸?不能鎖存,?輸出可以鎖存,具有兩種?作?式。端?C有位尋址功能,能作為聯(lián)絡(luò)線配合端?A和B?作,端?C還能作為兩個(gè)4位的端?使?,可以設(shè)置為輸?端?,也可以設(shè)置為輸出端?,但不能設(shè)置為雙向數(shù)據(jù)端?。(3)8251A同步和異步串?通信的初始化過(guò)程有何區(qū)別?答:異步?式字格式S2S1EPPENL2L1B2B1同步?式字格式SCSESDEPPENL2L100可見(jiàn)由?式字的最低兩位確定8251A的?作?式,當(dāng)全為0時(shí),?作于同步?式,否則?作于異步?式。8251A?作于異步?式時(shí),采??式字的S2、S1兩位來(lái)確定異步格式中的停?位的位數(shù);當(dāng)?作于同步?式時(shí),SCS、ESD?于確定時(shí)內(nèi)同步還是外同步,以及同步字符的個(gè)數(shù)。(4)若8251A的?作?式寄存器內(nèi)容為11111010,為使接收的波特率和發(fā)送的波特率分別為1200bit/s和4800bit/s,則此時(shí)RxC和TxC上分別接何種時(shí)鐘信號(hào)頻率?答:RxC上接收時(shí)鐘頻率=120016Hz=19.2kHzTxC上接發(fā)時(shí)鐘頻率=480016Hz=76.8kHz4.設(shè)8255A的端?A和B均?作與?式1,端?A輸出,端?B和C為輸?,端?A地址為0060H(接?連續(xù)編址)。(1)寫(xiě)出?作?式控制字。0AFH(2)編寫(xiě)8255A的初始化程序。MOVDX,0063HMOVAL,0AFHOUTDX,AL(3)若要?置位/復(fù)位?式將PC2置為1,PC7清0,試寫(xiě)出相應(yīng)程序。MOVDX,0063HMOVAL,05HOUTDX,ALMOVAL,0EHOUTDX,AL5.?8255A作為打印機(jī)接?,如圖9-33所?。當(dāng)8255A向打印機(jī)送出?個(gè)負(fù)脈沖作為選通信號(hào)()時(shí),端?A的字符數(shù)據(jù)就送往打印機(jī)。當(dāng)打印機(jī)的應(yīng)答信號(hào)BUSY為0時(shí),表?打印機(jī)不忙,可以發(fā)送數(shù)據(jù)到打印機(jī)。若8255A的端?地址為60H~63H,需打印的數(shù)據(jù)存放在以1000H數(shù)據(jù)為?地址的內(nèi)存RAM中,數(shù)據(jù)長(zhǎng)度為200,試編寫(xiě)向打印機(jī)發(fā)送數(shù)據(jù)的程序。

MOVBX,1000HMOVCX,200MOVAL,10000001BOUT63H,ALLOP:INAL,62HTESTAL,80HJNZLOPMOVAL,[BX]OUT60H,ALMOVAL,01HOUT63H,ALMOVAL,00HOUT63H,ALMOVAL,01HOUT63H,ALINCBXLOOPLOP6.設(shè)8251A的控制?地址為0C2H,數(shù)據(jù)?地址為0C0H,按下列要求對(duì)8251A進(jìn)?初始化。(1)要求?作于異步?式,波特率系數(shù)為16,奇校驗(yàn),8位數(shù)據(jù)位,1位停?位。(2)允許接收、允許發(fā)送、全部錯(cuò)誤標(biāo)志復(fù)位。(3)查詢(xún)8251A的狀態(tài)字,當(dāng)接收準(zhǔn)備就緒時(shí),則從8251A輸?數(shù)據(jù),否則等待。解:初始化程序如下MOVDX,0C2H;控制?地址MOVAL,01011110B;要求(1)OUTDX,ALMOVAL,00010101B;要求(2)OUTDX,ALWAIT:INAL,DX;判斷接收是否準(zhǔn)備就緒TESTAL,02HJZWAITMOVDX,0C0HINAL,DX7.若8251A的地址為30H和31H,收發(fā)時(shí)鐘(RxC,TxC)頻率為38.4kHz,與引腳相連,要求波特率為2400,每幀字符的數(shù)據(jù)位數(shù)為7,停?位數(shù)為1,試編寫(xiě)出偶校驗(yàn)的半雙?異步通訊的處于發(fā)送狀態(tài)的初始化程序。解:收發(fā)時(shí)鐘頻率為38.4kHz,波特率為2400bit/s,故波特率因?為38400/2400=16。XORAX,AXMOVDX,31HOUTDX,ALOUTDX,ALOUTDX,ALMOVAL,40HOUTDX,ALMOVAL,0

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論