微機(jī)原理著課后習(xí)題答案科學(xué)技術(shù)_第1頁
微機(jī)原理著課后習(xí)題答案科學(xué)技術(shù)_第2頁
微機(jī)原理著課后習(xí)題答案科學(xué)技術(shù)_第3頁
微機(jī)原理著課后習(xí)題答案科學(xué)技術(shù)_第4頁
微機(jī)原理著課后習(xí)題答案科學(xué)技術(shù)_第5頁
已閱讀5頁,還剩252頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

標(biāo)志寄存器flags器中取指令,指令譯碼;②簡單的算術(shù)邏輯運算;③在處理器和存儲器或者I/O算術(shù)邏輯部件ALU面向CPU什tInterconnect,即外設(shè)互連局部總線,是Intel公司推出PentiumII36236=64GB么是PCI總線?什么是USB?PCI全稱為Peripheral面向CPU什tInterconnect,即外設(shè)互連局部總線,是Intel答:808620220=1MBPentiumII36236=64GB么是PCI答:PCIPCI全稱為Peripheral且獨立于微處理器的,具有即插即用的特性,允許任何微處理器通過橋接口連接到PCI與系統(tǒng)之間,系統(tǒng)與外部設(shè)備之間的信息通道。USB是在1994年底由英特爾、康柏、與系統(tǒng)之間,系統(tǒng)與外部設(shè)備之間的信息通道。USB是在1994USBDB(2)DQ(1)1101.01B(3)101011.0101B(4)111.0001B(3)43.3125(1)A3.3H(3)AC.DCH(4)FAB.3H答:(1)163.1875(2)297.75(3)172.859375答:(1)23D=27Q=17H(2)107D=153Q=6BH000000010010010B5(4)-000000000000000000000000(3)1238D=2326Q=4D6HDB(2)DQ(1)1101.01B(3)101011.0101B(4)111.0001B答:(1)13.25(2)57.1875(3)43.3125(3)AC.DCH(4)FAB.3H答:(1)163.1875(2)297.75(3)172.859375答:(1)23D=27Q=17H(2)107D=153Q=6BH[-12000000010010010B5(4)-000000000000000000000000(3)1238D=2326Q=4D6H(2)[-12]原=10001100B[-12]反(4)[-92]原=11011100B[-92]反將下列十進(jìn)制數(shù)轉(zhuǎn)換為壓縮和非壓縮格式的BCD碼。[102]非壓縮BCD=00000001000000000[44]非壓縮BCD=000001000[301]非壓縮BCD=00000011000000000[1000]非壓縮BCD=00000001000000000(1)+1.5(2)-10.625100000000000000-10.625=-1010.101B=-1.010101×23,符號為1,127+3=130=10000010B,尾數(shù)0101010(3)+100.25=1100100.01B=1.10010001×26,符號為127+6=133=10000101B,尾數(shù)1001000100(4)-1200=-10010110000B=-1.0010110000×210,符號為1(1)010000000110000000000000(2)101111111000000000000000(3)010000000100100000000000000000008086CPUEUBIUEU(ALU)16(FLAGS)、EUEUALUFLAGSBIUCPUI/O8086CPU答:8086CPU416416AX、BX、CX、DX,數(shù)據(jù)或地址,也有其特殊用途。如AX(AL)用于輸入輸出指令、乘除法指令,BX尋址中作基址寄存器,CX,DXCS、DS、SS、ES8086CPU和8088CPU答:8088CPU8086CPU是16(3)80888AD7~AD0,即內(nèi)部是1688088也稱為準(zhǔn)16(4)8088IO/M信號代替M/IO(5)80888位數(shù)據(jù)傳輸,BHE不再需要,改為SS0,與DT/RIO/M(2)[-12]原=10001100B[-12]反(4)[-92]原=11011100B[-92]反將下列十進(jìn)制數(shù)轉(zhuǎn)換為壓縮和非壓縮格式的BCD[102]非壓縮BCD=00000001000000000[44]非壓縮BCD=000001000[301]非壓縮BCD=00000011000000000[1000]非壓縮BCD=00000001000000000(1)+1.5(2)-10.625尾數(shù)100000000000000(3)+100.25=1100100.01B=1.10010001×26,符號為0(4)-1200=-10010110000B=-1.0010110000×210,符號為(1)010000000110000000000000(2)101111111000000000000000(3)010000000100100000000000狀態(tài)標(biāo)志:SF、ZF、OF、AF、PF和CF,控制標(biāo)志:IF、DFTF,對可屏蔽中斷、字符串操作指針變換方向和單步運行起控制物理地址:指存儲器中存儲單元的實際地址編碼,是一種絕對地址,是CPU器的實際尋址地址,對于808600000H~FFFFFH??偩€、EISAPCISF,SF=1對有符號數(shù):OF,OF=1為溢出;對無符號數(shù):CF,CF=1為溢出PF,PF=1,不補對有符號數(shù):無溢出時(OF=0),ZF=1,ZF=0SF=0,ZF=0SF=1,(OF=1),SF=1,則被減數(shù)大;如SF=0,ZF=1,CF=0,CF=1,答:8086,1MB使用A0BHEA0=08位相連,從低8當(dāng)BHE=088當(dāng)A0=0,BHE=0STRDB‘Whattimeisit?’,’$’‘‘‘(1)1234H(2)A122H(3)B100H(1)1000H(2)1234H(3)2300H(4)E000H(5)AB00H根據(jù)下列CS:IP(1)CS:IP=1000H:2000H(3)CS:IP=1A00H:B000H(4)CS:IP=3456H:AB09H答:(1)12000H(2)21000H(3)25000H(4)3F069H(1)DS=1000H,DI=2000H(3)DS=A000H,BX=1000H(4)SS=2900H,SP=3A00H答:(1)12000H(2)26200H(3)A1000H若當(dāng)前SS=3500H,SP=0800H,說明堆棧段在存儲器中的物理地址,若此時入棧10字節(jié),SP6,SP答:物理地址:35000H~35800H10SP7F6H6SP7FCH。EU(ALU)、通用寄存器組、的特征保留在標(biāo)志寄存器FLAGS中。416AX、BX、CX、DX,尋址中作基址寄存器,CX,DX8086CPU8088CPU是16位。也稱為準(zhǔn)16位機(jī)。中,用某程序數(shù)據(jù)段中存放了兩個字,1EE5H和2A8CH,已知DS=7850H,數(shù)據(jù)存放的偏移地址為3121H285AH答:1EE5H的存儲物理地址=78500H+3121H=7B621H,為奇數(shù),故若要讀取這個字,需要2A8CH=78500H+285AH=7AD5AH,為偶數(shù),故若要讀取這個字,只-AX=0000BX=0000CX=0079DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=10E4ES=10F4SS=21F0CS=31FFIP=0100NVUPDIPLNZNAPO寫出狀態(tài)標(biāo)志OF、SF、ZF、CF的值答:(1)代碼段首地址:31FF0H:320F0H堆棧段首地址:21F00H:31EEEH于多處理機(jī)系統(tǒng),系統(tǒng)中所需要的控制信號由總線控制器82888086?8282CPU答:為了減少引腳的數(shù)量,8086CPU由于8086208282,其中OE,STBCPU相連,前兩片8282DI0~DI7CPUAD0~AD158282DI0~DI3與CPUAD16~AD19,DI4CPUBHE 哪個標(biāo)志位控制CPUINTR什么叫總線周期?在CPU答:CPUI/OT狀態(tài)組成。在讀/寫總線周期中,數(shù)據(jù)在T2~T4答:OSC:振蕩器輸出信號,是內(nèi)部振蕩電路的TTL在PC/XT14.318MHzCLK:三分頻OSC4.77MHz,占空比為1/3,供8086CPUPCLK:二分頻CLK2.38636MHz,TTL1/2,供PC/XT8086CPU答:重新啟動后,CS=FFFFH,IP=0000H,故從物理地址為FFFF0H8086CPU答:8086狀態(tài)標(biāo)志:SF、ZF、OF、AF、PF和CF器的實際尋址地址,對于8086系統(tǒng),地址范圍為00000H~FFFFFH。總線、EISA總線、PCI總線等。對有符號數(shù):OF,OF=1:CF,CF=1為溢出ZF=0SF=1,(OF=1),SF=1,則被減數(shù)大;如位相連,從低8位數(shù)據(jù)總線讀/寫一個字節(jié)。STRDBWhattimeisit?’,’$’(1)MOVAX,2408H(2)MOVCL,0FFH(3)MOV(4)MOV5[BX],BL(5)MOV[BP+100H],AX(6)MOVMOVDX,ES:[BX+SI](8)MOV(9)INAL,05H(10)MOV已知:DS=1000H,BX=0200H,SI=02H,內(nèi)存10200H~10205H單元的內(nèi)容分別為2AH,3CH,46H,59H,6BH。下列每條指令執(zhí)行完后AX(1)MOVAX,0200H(2)MOVAX,[200H](3)MOV(4)MOVAX,3[BX](5)MOVAX,[BX+SI](6)MOV答:(1)0200H(2)2A10H(4)5946H(5)463CH設(shè)數(shù)據(jù)段中變量名為VAL0030H,試說明下列源操作數(shù)字段的尋址方式是什(1)MOVAX,[100H](2)MOVAX,VAL(3)MOV(4)MOVAX,ES:[BX](5)MOVAX,[SI](6)MOV(7)MOVAX,[BP](8)MOVMOVAX,VAL[BX][DI](10)MOV(4)寄存器間接,20100H(5)寄存器間接,100A0H(6)寄存器相對(7)寄存器間接,35200H(8)相對基址變址(9)相對基址變址,10154H(10)基址變址(1)MOVAL,CL(2)MOVDX,CX(3)MOV[BX+100H],3150H答:(1)1000101011000001B(2)10001011(3)1100011110000111000000000000000101010000DATASEGMENTADBBDBCDW1234H,DDB5EDD1200459AHDATAENDSMOVAL,AMOVDX,CXCHGDL,MOVBX,OFFSETBMOVCX,3[BX]LEABX,DLESDI,答:MOVAL,AAL=24HMOVDX,CDX=1234HMOVBX,OFFSETBBX=2MOVCX,3[BX]CX=5550HLEABX,DBX=000EHLDSSI,EDS=1200H,SI=459AHMOVDL,AX(2)MOV8650H,AX(3)MOV(4)MOV[BX],[1200H](5)MOVIP,0FFH(6)MOV(7)MOVAX,[BX][BP](8)MOVAL,ES:[BP](9)MOVMOVAX,OFFSET0A20H(11)MOVAL,OFFSET(12)XCHGAL,50H(13)INBL,05H(14)OUTSI/DIBX/BP(10)OFFSET(11)偏移地址為16,AL(12)立即數(shù)不能用于(13)INAL/AX(14)8已知當(dāng)前數(shù)據(jù)段中有一個十進(jìn)制數(shù)字0~9730H,19H,12H,02H,78H,00H,18H。要求用XLAT指令將十進(jìn)制數(shù)577BXDATASEGMENTTABLEDB40H,79H,24H,30H,19H,12H,02H,78H,00H,18HDATAENDSMOVMOVBX,OFFSETTABLEXLATTABLEMOVCL,ALMOVAL,7XLATTABLEMOVBL,ALMOV(1)1234H(2)A122H(3)B100H答:NUMDW1234H,A122H,B100H34H(1)CS:IP=1000H:2000H(3)CS:IP=1A00H:B000H(4)CS:IP=3456H:AB09H(1)DS=1000H,DI=2000H(3)DS=A000H,BX=1000H(4)SS=2900H,SP=3A00H答:(1)12000H(2)26200H(3)A1000H(4)2CA00H字節(jié),SP6,SP已知當(dāng)前SS=1050H,SP=0100H,AX=4860H,BX=1287H,令過程中,堆棧中的內(nèi)容和堆棧指針SPPUSHAXPUSHBXPOPBXPOPAX答:(1)(2)執(zhí)行PUSHAX執(zhí)行PUSHBX(4)執(zhí)行POPBX(5)執(zhí)行POPAX(1)ADDAL,DH(2)ADCBX,CX(3)SUBDECBX(5)NEGCX(6)INC(7)MULBX(8)DIV答:(1)AL+DH→AL(2)BX+CX+CF→BX(3)AX-(fs214)BX-1→BX(5)0-CX→CX(7)AX*BX→DX,AX(8)AX/CL商→AL,余數(shù)是什么?標(biāo)志位CF(1)ANDAH,CL(2)ORBL,30H(3)NOTAX?10500H(4)XORCX,0FFF0H(5)TESTDH,0FH(6)CMP(7)SHRDX,CL(8)SARAL,1(9)SHLSALAX,1(11)RCLBX,1(12)RORDX,CL答:(1)AX=0408H,CF=0(2)BX=0F36H,CF=0(3)AX=0DAF7H,CF(5)DX=01864H,CF=0(7)DX=0186H,CF=0(9)BX=0F036H,CF=0BX=1E6C/1E6DH,CF=0DATASEGMENTSTRINGDB‘hePersonalComputer&TV’DATAENDS把該字符串傳送到附加段中偏移量為GET_CHAR開始的內(nèi)存單元中。比較該字符串是否與’heComputer’相同,若相同則將AL1,否則置0。并要求將比較次數(shù)送到BL把字符串大寫字母傳送到附加段中以CAPS開始的單元中,其余字符傳到以CHART答:(1)CLDLEASI,STRINGLEADI,GET_CHARMOVCX,26REPSTRING1DB‘hecomputer’MOVAL,1LEASI,STRINGLEADI,STRING1MOVCX,12REPZCMPSBJZSKIPMOVAL,0SUBBX,CXMOVAX,DATAMOVES,AXMOV 和2A8CH,已知DS=7850H,數(shù)據(jù)存放的偏移地址為3121H及285AH。試畫圖說明它們在存儲器中的存放情況。若要讀取這兩個字,需要答:1EE5H=78500H+3121H=7B621H,為奇數(shù),故若要讀取這個字,需要2A8CH的存儲物理地址=78500H+285AH=7AD5AH,為偶數(shù),故若要讀取這個字,只-DS=10E4ES=10F4SS=21F0CS=31FFIP=0100NVUPDIPLNZNAPONC寫出狀態(tài)標(biāo)志OF、SF、ZF、CF的值(2)于多處理機(jī)系統(tǒng),系統(tǒng)中所需要的控制信號由總線控制器8288提供。MOVCX,26NEXT:REPNESCASBJZFINDJMPFIND:MOVBYTEPTR[DI-1],''JCXZEXITJMPNEXTLEASI,STRINGLEADI,CAPSLEABX,CHARTMOVCX,26NEXT:MOVAL,[SI]CMPAL,’’JBOTHERCMPAL,’’JAOTHERMOVES:[DI],ALINCDIJMPSKIPINCBXINCSILOOP編程將AXDXAX被破壞,然后統(tǒng)計DX‘1’的個數(shù)是多少。MOVBL,0PUSHAXMOVDX,0MOVCX,16NEXT:SHLAX,1JNCSKIPINCSKIP:RCRDX,1LOOPNEXTSTOP:POPAX設(shè)(20300H)=4800H,(20302H)=00FFH,TABLE=0500H,PROG_N標(biāo)號的地址為0278H,PROG_F標(biāo)號的地址為3400H:0ABCH。說明下列每條指令執(zhí)行完后,程序?qū)⒎謩eJMPJMPJMP與CPU的AD16~AD19相連,DI4與CPU的BHE相連。JMPFARJMPDWORDPTR如將上述指令中的操作碼JMPCALL,則每條指令執(zhí)行完后,程序轉(zhuǎn)向何處執(zhí)行?并答將操作碼JMPCALL指令長度為3,則IP=0100H+3=0103H,?指令長度為2,則IP=0100H+2=0102H,指令長度為2,則IP=0100H+2=0102H,指令長度為5,則IP=0100H+5=0105H, ?.SP哪個標(biāo)志位控制CPUINTR態(tài)組成。在讀/寫總線周期中,數(shù)據(jù)在T2~T4狀態(tài)出現(xiàn)在數(shù)據(jù)總線上。在PC/XT中,其頻率為14.318MHzPCLK:二分頻CLK后的時鐘,輸出頻率為2.38636MHz,TTL電平,占空比為1/2,供PC/XT機(jī)的外設(shè)使用。答:重新啟動后,CS=FFFFH,IP=0000H,故從物理地址為FFFF0H的位置開始執(zhí)行指令。答:8086最小模式系統(tǒng)配置包括:?.SP5000H:03FCH?LOOPNEXT(2)LOOPENEXT(3)LOOPNE試說明在這三種情況下,程序段執(zhí)行完后,AX,BX,CX,DXSTART:MOVAX,01HMOVBX,02HMOVDX,03HMOVCX,04HNEXT:INCAXADDBX,AXSHRDX,1(答:(1)AX=05HBX=10HCX=0AX=02HBX=04HCX=03HAX=03HBX=07HCX=02H某班有780ARRAY5NEW把總分存到SUMDATASEGMENTARRAYDB?,?,?,?,?,?,?NEWDB7DUP(?)SUMDW0DATAENDSMOVDS,AXLEADI,NEWMOVNEXT:MOVAL,[SI]ADDAL,5INCSI(1)MOVAX,2408H(2)MOVCL,0FFH(3)MOV(4)MOV5[BX],BL(5)MOV[BP+100H],AX(6)MOV(7)MOVDX,ES:[BX+SI](8)MOV(9)INAL,05H(10)MOV已知:DS=1000H,BX=0200H,SI=02H,內(nèi)存10200H~10205H單元的內(nèi)容分別為2AH,3CH,46H,59H,6BH。下列每條指令執(zhí)行完后AX寄存器的內(nèi)容各是什么?(1)MOVAX,0200H(2)MOVAX,[200H](3)MOV(4)MOVAX,3[BX](5)MOVAX,[BX+SI](6)MOV設(shè)(1)MOVAX,[100H](2)MOVAX,VAL(3)MOV(4)MOVAX,ES:[BX](5)MOVAX,[SI](6)MOV(7)MOVAX,[BP](8)MOVMOVAX,VAL[BX][DI](10)MOVMOVAL,CL(2)MOVDX,CX(3)MOV(2)10001011(3)1100011110000111000000000000000101010000DATAADBBDBCDW1234H,INCDILOOPNEXTLEASI,ARRAY?.SPMOVCX,7MOVAH,0ADCSUM,AXINCSILOOP類型31K00000H~003FFH0000CH~0000FH00008H00009H0000AH0000BH若中斷向量表中地址為0040H中存放240BH,0042H單元里存放的是D169H,若CPUTF=1,則每執(zhí)行完一條指令后,自動產(chǎn)生類型1當(dāng)8086NMI2若溢出標(biāo)志OF=1,則可由溢出中斷指令I(lǐng)NTO產(chǎn)生類型4中斷。DDB5EDD1200459AHDATAENDSMOVAL,A1DW23H,5876HA2DB3DUP(?),0AH,0DH,‘’A3DD5DUP(1234H,567890H)A4DB4DUP(3DUP(1,2,’BC’)答:A14A26A340A460MOVAL,15GE1111BANDAL,50MOD4ORAX,0F00FHAND1234OR答:(1)將0066H傳送給將0FFH將0FFFFH傳送給ANDORBUFDB3,4,5,’23’ABUFDB0LEQUABUF-BUF求LPARDW?COUNTDD?PLENTHEQU$-求PLENTH答:PAR0,PLENTH$=2+16+4=22,$-PAR=22,故PLENTH若在PLENTH$表示該變量的偏移地址,即$表示PLENTH行的當(dāng)前偏移地址。故PLENTHPAR對于下面的數(shù)據(jù)定義,各條MOVDA1DB?DA2DW10DA3DB‘BCD’MOVAX,TYPEDA1MOVBX,SIZEDA2MOVCX,LENGTHDA3MOVDX,CXCHGDL,MOVBX,OFFSETBMOVCX,3[BX]LEABX,DLESDI,答:MOVALAAL=24HMOVDXCDX=1234HXCHGDL,ADL=24H,A=34HMOVBX,OFFSETBBX=2MOVCX3[BXCX=5550HLEABXDBX=000EHLESDI,EES=1200H,DI=459AH(1)MOVDL,AX(2)MOV8650H,AX(3)MOV(4)MOV[BX],[1200H](5)MOVIP,0FFH(6)MOV(7)MOVAX,[BX][BP](8)MOVAL,ES:[BP](9)MOVMOVAX,OFFSET0A20H(11)MOVAL,OFFSET(12)XCHGAL,50H(13)INBL,05H(14)OUT30H,19H,12H,02H,78H,00H,18H。要求用XLAT指令將十進(jìn)制數(shù)57答:DATASEGMENTTABLEDB40H,79H,24H,30H,19H,12H,02H,78H,00H,18HDATAENDSMOVMOVBX,OFFSETTABLEXLATTABLEMOVCL,ALMOVAL,7下段程序完成后,AHINAL,5FHTESTAL,80HJZL1MOVAH,0JMPSTOPSTOP:HLT答:討論從端口5FH1,則AH=0;若最高位為0,答:(1)可以利用中斷類型1CH次要調(diào)用一次INT1CH,即每隔55ms,產(chǎn)生一次1CH55s/55ms=911CHIRET替原有的INT1CHDATASEGMENTCOUNTDW91CODESEGMENTMAINPROCSTART:PUSHDSPUSHAXMOVAX,DATAMOVDS,AXMOVAL,1CHMOVAH,35HINTPUSHESPUSHBXPUSHMOVDX,OFFSETDELAY;DELAYMOVAX,SEGDELAYMOVMOVAL,1CHMOVAH,25HPOPDSINAL,21HANDAL,0FEHXLATTABLEMOVBL,ALMOVOUT21H,ALMOVDI,2000HA1:MOVSI,3000HJNZA2DECDIJNZA1POPDXPOPDSMOVAL,1CHMOVAH,25HINT21HMAINDELAYPROCNEARPUSHDSPUSHAXPUSHCXPUSHMOVAX,DATAMOVDS,AXDECCOUNT;5JNZEXITMOVDX,OFFSETMESSMOVAH,09HINTMOVCOUNT,91;5EXIT:CLIDELAYENDPCODEENDSENDSTART(2)可以利用INT1AH,讀取當(dāng)前時間的1/100CODESEGMENTASSUMECS:CODESTART:MOVINT1AHCH:CL=已知當(dāng)前SS=1050H,SP=0100H,AX=4860H,BX=1287H,試用示意圖表示執(zhí)行下列指令過程中,堆棧中的內(nèi)容和堆棧指針SPPOPBXPOPAX答:(1)(2)執(zhí)行PUSHAX執(zhí)行PUSHBX(4)執(zhí)行POPBX(5)執(zhí)行POPAXADDAL,DH(2)ADCBX,CX(3)SUBDECBX(5)NEGCX(6)INC(7)MULBX(8)DIV答:(1)AL+DH→AL(2)BX+CX+CF→BX(3)AX-(7)AX*BX→DX,AX(8)AX/CL商→AL,余數(shù)已知AX=2508H,BX=0F36H,CX=0004H,DX=1864H,求下列每條指令執(zhí)行后的結(jié)果是什么?標(biāo)志位CFANDAH,CL(2)ORBL,30H(3)NOTAXMOVAL,DL;DH:DL=秒:1/100MOVAH,0DIVBLINCAHMOVDL,AHMOVAH,2INT21HMOVAH,4CHINT21HCODEENDSENDSTART編兩個通過過程完成將AXBCDBCD答:(1)將AX1000,10010,每次除法所得的商,即是BCD子程序名輸入?yún)?shù):AX=輸出參數(shù):CF=0,則AX=4BCDCF=1,則要轉(zhuǎn)換的數(shù)大于9999,AXB2TOBCDPROCFARCMPAX,9999;AX>9999,則CF1JBETRANJMPPUSHDXSUBDX,DX;DXMOVCX,1000DIVCXXCHGAX,DXDXAXMOVCL,4SHLDX,CL;DX4DIVCLADDDL,ALDL,DX4MOVCL,4SHLXCHGAL,AH;余數(shù)保留在ALSUBAH,AHMOVCL,10DIVADDDL,ALDL,DX4MOVCL,4SHLADDDL,AHPOPDXPOPCXEXIT:RETB2TOBCD將AX4BCD1000,100,101,然后求和即得。輸入?yún)?shù):AX=4BCD輸出參數(shù):AX=BCDTOB2PROCFARPUSHBXPUSHCXPUSHDXMOVCL,4ROLAX,CLANDMOVCX,10001000MULCXMOVDX,AXMOVAX,BXMOVCL,8ROLAX,CLANDMULCLADDDX,AXMOVCL,4SHRAX,CLANDAX,000FHMOVCL,1010MULCLADDDX,AXADDDX,BXMOVAX,DX(4)XORCX,0FFF0H(5)TESTDH,0FH(6)CMP(7)SHRDX,CL(8)SARAL,1(9)SHLSALAX,1(11)RCLBX,1(12)ROR答:(1)AX=0408H,CF=0AX=0DAF7H,CF不變(5)DX=01864H,CF=0(7)DX=0186H,CF=0(9)BX=0F036H,CF=0BX=1E6C/1E6DH,CF=0DATASTRINGDB‘hePersonalComputer&TV’DATA把該字符串傳送到附加段中偏移量為GET_CHAR把字符串大寫字母傳送到附加段中以CAPSCHART開答:(1)CLDLEASI,STRINGLEADI,GET_CHARMOVCX,26REPLEASI,STRINGLEADI,STRING1MOVCX,12REPZCMPSBJZSKIPMOVAL,0SKIP:MOVBX,12SUBBX,CXMOVAX,BCDTOB2答:(1)將AX中兩位ASCII碼先轉(zhuǎn)化成數(shù)字,然后AH*10+AL。輸入?yún)?shù):AX=2ASCIIASCIITOB2PROCFARPUSHBXPUSHCXPUSHDXMOVBX,AXSUBAH,30HMOVMULCLMOVDX,AXMOVAX,BXSUBAL,30HMOVAH,0ADDAX,DXPOPDXPOPBXASCIITOB2使用2DOS輸入?yún)?shù):AX=2ASCIIDISPLAYPROCFARPUSHBXPUSHDXMOVBX,AXMOVDL,AHMOVAH,2INT21HMOVES,AXMOVMOVAX,BXMOVDL,ALMOVAH,2INT21HPOPDXPOPBXDISPLAY輸入?yún)?shù):AX:4輸出參數(shù):DX,AX:4ASCII,DX2,AX2PUSHBXPUSHCXPUSHDXSHRAX,CLADDAH,30HCMPAH,3AHJBA1ADDA1:MOVANDAX,0F00HADDAH,30HCMPAH,3AHJBA2ADDA2:MOVMOVCL,4SHRBL,CLADDBL,30HCMPBL,3AHJBA3ADDA3:MOVANDBH,0FHAL4ADDBH,30HLEADI,STRINGMOVCX,26NEXT:REPNESCASBJZFINDJMPFIND:MOVBYTEPTR[DI-1],''JCXZEXITLEADI,CAPSLEABX,CHARTMOVCX,26NEXT:MOVAL,[SI]CMPAL,’’JBOTHERCMPAL,’’JAOTHERMOVES:[DI],ALINCDIOTHER:MOVES:[BX],ALINCBXSKIP:MOVBYTEPTR[SI],0INCSILOOP破壞,然后統(tǒng)計DX寄存器中‘1’的個數(shù)是多少。MOVBL,0PUSHAXMOVDX,0MOVCX,16NEXT:SHLAX,1JNCSKIPINCLOOPNEXTSTOP:POPAX設(shè)(20300H)=4800H,(20302H)=00FFH,TABLE=0500H,PROG_N標(biāo)號的地址為0278H,PROG_F標(biāo)號的地址為3400H:0ABCH。說明下列每條指令執(zhí)行完后,程序?qū)⒎謩eCMPBH,3AHJBA4ADDA4:MOVAL,BHPOPDXPOPBXHEXTOASC(2)子程序名DISPLAYASCPROCFARPUSHBXPUSHCXMOVBX,DXMOVCX,AXMOVDL,BHMOVAH,02HINT21HMOVDL,BLINT21HMOVDL,CHINT21HMOVDL,CLINT21HMOVDL,’’INTPOPBXDISPLAYASCDATASEGMENTTABLEDW6DUP(?)DATAENDSCODEASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEASI,MOVWORDPTR[SI],OFFSETJMPJMPJMPMOVWORDPTR[SI+10],OFFSETP5MOVAH,1INT21HSHLAL,1MOVAH,0MOVSI,AXJMPTABLE[SI]MOVAH,4CHINT21HCODEENDSENDSTART在首地址為TABLE10016出現(xiàn)次數(shù)最多的數(shù)及其出現(xiàn)次數(shù)分別存放于AXBLDATATABLEDW100DUPNUMDW?COUNTDW0DATAENDSCODESEGMENTMAINPROCASSUMECS:CODE,DS:DATASTART:PUSHDSDOSSUBAX,AXPUSHMOVAX,MOVDS,AXDSBEGIN:MOVCX,100MOVSI,0NEXT:MOVDX,0COMP:CMPTABLE[SI],AXJNEADDRJMPFARJMPDWORDPTR將操作碼JMPCALL? INCDXADDSI,2LOOPCOMPJLEDONEMOVCOUNT,DXMOVNUM,AXDONE:LOOPNEXTMOVAX,NUM;出現(xiàn)最多的數(shù)存入(AX)MAINCODEENDSENDSTART答:DATASEGMENTSTRINGDB'INPUT4HEXNUM:',0AH,0DH,'$'NUMDB10DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEADX,STRINGMOVAH,9INT21HMOVBP,4MOVCONT:MOVCL,44.DXSHLDX,CLINT21HCMPAL,'0'JBD1JAD1JBA1SUBA1:SUBAL,30HMOVAH,0ADDDX,AXDECBPJNZMOVSI,0DXASCIINUMMOVAX,DXMOVDX,0MOVBX,10D2:DIVBXMOVNUM[SI],DLINCSICMPAX,0JZEXITMOVDX,0JMPD2EXIT:MOVDL,0AHMOVAH,2INT21HMOVDL,0DHINT21HD3:DECMOVAH,2JNZD3MOVAH,4CHINT21HCODEENDSENDSTART將AXASCII答:將13DATADATAENDSCODEASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,MOVSI,0AXASCIINUMMOVDX,0MOVBX,10D2:DIVBXMOVLOOPNEXT(2)LOOPENEXT(3)LOOPNESTART:MOVAX,01HMOVBX,02HMOVDX,03HMOVCX,04HNEXT:INCAXADDBX,AXSHRDX,1(答:(1)AX=05HBX=10HCX=0AX=02HBX=04HCX=03HAX=03HBX=07HCX=02H答:DATASEGMENTNEWDB7DUP(?)SUMDW0DATAENDSMOVAX,DATAMOVDS,AXLEASI,ARRAYLEADI,NEWMOVNEXT:MOVINCSICMPAX,0JZEXITMOVDX,0JMPD2EXIT:MOVAH,4CHINT21HCODEENDSENDSTART答:DATASEGMENTNUMDW20DUP(?)20ASCDB10DUP(?)ASCIIDATAENDSCODEASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVCX,20MOVBX,10MOVSI,0MOVBP,0BEGIN:MOVDX,020(十進(jìn)制),并A1:MOVAH,1NUMINTJZA2CMPAL,0DHJZA2JZA3JMPJMPA1MOVAX,DXMULBXMOVDX,AXPOPAXSUBAL,30HMOVAH,0ADDDX,AXJMPA1ADDAL,5INCSIA2:CMPBP,1JNZA5NEGDXA5:MOVNUM[SI],DXMOVBP,0ADDSI,2LOOPBEGINMOVAH,2INT21HMOVDL,0AHINT21HMOVBX,020MOVCX,19NUML1:MOVDX,CXCMPAX,NUM[BX+2]JLECONT1XCHGAX,NUM[BX+2]MOVNUM[BX],AXCONT1:ADDBX,2LOOPL2MOVCX,DXMOVBX,0LOOPL1MOVCX,2020(二進(jìn)制)轉(zhuǎn)換為十進(jìn)制數(shù)MOVSI,0ASCIIADDSI,2TESTAX,1000HJZD4PUSHAXMOVAH,2INT21HPOPAXNEGAXMOVDX,0MOVBX,10D2:DIVBXADDDL,30HMOVINCDILEASI,ARRAYMOVCX,7NEXT1:MOVAL,[SI]MOVAH,0ADCSUM,AXINCSILOOP類型3的中斷?答:物理地址內(nèi)容0000AH若中斷向量表中地址為0040H中存放240BH,0042HD169HINCDICMPAX,0JZD3MOVDX,0JMPD2MOVAH,2INT21HDECDIJNZD3MOVAH,2INT21HLOOPD1INT21HCODEENDSENDSTART答:DATASEGMENTSTRING1DB'INPUTFIRSTNUM(HEX):',0DH,0AH,'$'STRING2DB'INPUTSECONDNUM(HEX):',0DH,0AH,'$'STRING3DB'THERESULTIS(HEX):',0DH,0AH,'$'NUM1DW0,0;存放加數(shù)1NUM2DW0,0;存放加數(shù)2DATAENDSCODEASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEADX,STRING1(4)MOVAH,9INT21HMOVSI,2MOVCX,8CONT:PUSHCXCMPCX,4JNZB1B1:MOVCL,4SHLNUM1[SI],CLC1:MOVAH,1若溢出標(biāo)志OF=1,則可由溢出中斷指令I(lǐng)NTO4INT21HCMPAL,'0'JBC1JAC1JBA1SUBA1:SUBAL,30HMOVAH,0ADDNUM1[SI],AXPOPCXLOOPMOVAH,2INT21HMOVDL,0AHINT21HLEADX,STRING2(4)MOVAH,9INT21HMOVSI,2CMPCX,4JNZB2B2:MOVCL,4SHLNUM2[SI],CLC2:MOVAH,1INT21HCMPAL,'0'JBC2JAC2JBA2SUBA2:SUBAL,30HMOVAH,0ADDNUM2[SI],AXPOPCXLOOPA1DWA2DB3DUP(?),0AH,0DH,‘’A3DD5DUP(1234H,567890H)A4DB4DUP(3DUP(1,2,’BC’)A26MOVAX,00FFHAND1122H+3344HMOVAL,15GE1111BMOVAX,00FFHLE255+6/5ANDAL,50MOD4ORAX,0F00FHAND1234OR答:(1)將0066H將0FFH傳送給將0FFFFH傳送給ANDORLEQUABUF-BUFPARDWPNAMEDB16DUP(?)COUNTDD?PLENTHEQU$-求PLENTH答:PAR的偏移地址為0,PLENTH當(dāng)前偏移地址$=2+16+4=22,$-PAR=22,故的值為22若在PLENTH所在行有變量定義,則$表示該變量的偏移地址,即$表示PLENTH所在DA1DBDA2DW10DA3DB‘BCD’MOVAX,TYPEMOVAH,2INT21HMOVDL,0AHINT21HLEASI,NUM1LEABX,NUM2MOVCX,4ADCAL,[BX]MOV[DI],ALINCSIINCBXINCDILOOPADLEADX,STRING3(4)MOVAH,9INT21HMOVCX,4MOVDI,3TT:PUSHCXMOVCL,4SHRDL,CLADDDL,30HCMPDL,3AHJBD1ADDINT21HMOVDL,RESULT[DI]ANDDL,0FHJBD2ADDD2:MOVAH,2INT21HDECDIPOPCXLOOPMOVBX,SIZEDA2MOVCXLENGTHDA3INT21HCODEENDSENDSTART編寫2BCDDATASEGMENTDA1DB09H,09HDA2DB09H,08HDATAENDSCODEASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVBL,10MULBLMOVBH,0ADDAX,BXMOVCX,AXCONT:MOVAH,0MOVAL,RESULTADDAL,DA1MOVRESULT,ALMOVAL,RESULT+1ADDAL,AHMOVRESULT+1,ALMOVAL,RESULT+2ADDAL,AHMOVAH,0MOVRESULT+2,ALMOVAL,RESULT+3ADDAL,AHMOVAH,0INAL,5FHTESTAL,80HJZL1MOVAH,0JMPSTOPL1:MOVAH,0FFHSTOP:HLT次要調(diào)用一次INT1CH,即每隔55ms,產(chǎn)生一次1CH中斷,要產(chǎn)生5秒延時,只要中斷5s/55ms=911CHIRET替原有的INT1CH程序。DATASEGMENTCOUNTDW91MESSDB‘sdelayed!’0AH,0DH,’’DATAENDSCODESEGMENTMAINPROCASSUMECS:CODE,DS:DATA,ES:DATASTART:PUSHDSMOVAX,0PUSHAXMOVAX,DATAMOVDS,AXMOVAH,35HINTPUSHBXPUSHMOVDX,OFFSETDELAY;DELAY的偏移地址和段地址MOVAX,SEGDELAYMOVDS,AXMOVAL,1CHMOVAH,25HINT21HMOVRESULT+3,ALLOOPCONTINT21HCODEENDSENDSTART編寫完整的程序求N!,求N6答:DATASEGMENTNDB88DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVCALLFACTCALLB2TODECMOVAH,4CHINT21HFACTPROCCMPAL,0JNZCHNMOVBX,1CHN:PUSHAXDECALPOPAXMULBXFACTENDPB2TODECPROCMOVCX,10000CALLBINCALLBINMOVCX,100CALLBINMOVCX,10CALLBINMOVCX,1POPANDCALLBINB2TODECENDPBINPROCMOVAX,BXMOVDX,0DIVCXMOVBX,DXMOVDL,ALMOVAH,2INT21HBINENDPCODEENDSENDSTART答:DATABUFFDB10,1,0,2,3,4,0,5,6,7,0;10MEQU0DATAENDSCODEASSUMECS:CODE,ES:DATA,DS:DATASTART:MOVAX,DATA;初始化ES,DSMOVES,AXMOVDS,MOVAL,M關(guān)鍵字MALMOVDI,OFFSETBUFFMOVCL,[DI]數(shù)組長度存入CXMOVCH,0INCDICLDL1:REPNESCASBJNZSTOP未找到,轉(zhuǎn)STOPJCXZSTOP最后一個數(shù)是M,轉(zhuǎn)STOPPUSHDIPUSHCXMOV[DI-1],BLINCDILOOPDELMOVBYTEPTR[DI-1],OUT21H,ALMOVDI,2000HA1:MOVSI,3000H;產(chǎn)生中斷A2:DECSIJNZA2DECDIJNZA1POPMOVAL,1CHMOVAH,25HINT21HMAINENDPDELAYPROCNEARPUSHDSPUSHAXPUSHCXPUSHDXMOVDS,AXDECCOUNT5JNZMOVDX,OFFSETMESS;顯示信息MOVAH,09HINT21HMOVCOUNT,915EXIT:CLIPOPDXPOPCXPOPAXPOPDSCODEENDSENDSTARTCODEPOPCX恢復(fù)CX,DIPOPDIDECDI由于REPNESCASB已自動加1JMPL1STOP:MOVAH,4CHINT21HCODEENDSENDSTART答:DATASEGMENTSTRING1DB'THISISTHEFIRSTSTRING!','$'DB100DUP(0)NUM1DW;字符串1STRING2DB'thesecondstring!','$'NUM2DW;字符串2POSDW8DATAENDSCODESEGMENTSTART:MOVAX,DATAMOVDS,AXMOVLEADI,STRING11NUM1MOVAL,'$'MOVNUM1,0D1:SCASBJZD2INCNUM1JMPD1D2:LEADI,STRING22NUM2MOVAL,'$'MOVNUM2,0D3:SCASBJZD4INCNUM2JMPD3D4:LEASI,STRING11ADDSI,NUM12MOVDI,SIADDDI,NUM2ASSUMECS:CODESTART:MOVAH,0INT1AH;讀取當(dāng)前時間CH:CLMOVCX,NUM1SUBCX,POSINCCXREPLEASI,STRING221LEADI,STRING1ADDDI,POSMOVCX,NUM2REPMOVSBLEADX,STRING1MOVAH,9INTMOVAH,4CHINT21HCODEENDSENDSTART個學(xué)生的成績登記表,編程序?qū)⒊煽冃∮?0答:STUDENTSTRUCCLASSDB;班級NAMDB'ABCDE$'NUMDBCOURSEDB'ABCD'SCOREDB;成績STUDENTENDSDATASTUDENT1STUDENT<1,'XIAOA$',001,'MATH',70>STUDENT2STUDENT<1,'XIAOB$',002,'MATH',80>STUDENT3STUDENT<1,'XIAOC$',003,'MATH',50>STUDENT4STUDENT<1,'XIAOD$',004,'MATH',90>STUDENT5STUDENT<1,'XIAOE$',005,'MATH',55>DATAENDSCODESTART:MOVAX,DATAMOVDS,AXMOVCX,5MOVSI,0CONT:MOVAL,STUDENT1.SCORE[SI]CMPAL,60JAELEADX,STUDENT1.NAM[SI];小于60則顯示姓名和成績MOVAL,DL;DH:DL=秒:1/100秒MOVAH,0MOVBL,9DIVBLINCAHMOVDL,AHADDDL,30HMOVAH,2INT21HMOVAH,4CHINT21HCODEENDSENDSTART子程序名輸出參數(shù):CF=0,則AX=4BCDCF=1,則要轉(zhuǎn)換的數(shù)大于9999,AXB2TOBCDPROCJBETRANJMPEXITTRAN:PUSHCXPUSHDXSUBDX,DXDXDIVXCHGAX,DXDX中,余數(shù)在AXMOVSHLDX,CL;DX4MOVCL,100;計算百位數(shù)DIVMOVCL,4SHLMOVAH,9INT21HMOVAH,2INT21HMOVAL,STUDENT1.SCORE[SI]ASCIIMOVAH,0MOVBL,10DIVBLPUSHAXMOVDL,ALMOVAH,2INT21HPOPAXMOVDL,AHMOVAH,2INT21HMOVMOVAH,2INT21HMOVDL,0AHINT21HD1:ADDSI,13LOOPCONTMOVAH,4CHINT21HCODEENDSENDSTART分~6960答:設(shè)學(xué)生人數(shù)為字節(jié),成績?yōu)閴嚎sBCDDATASEGMENTBUFFDBXXH,?ANUMEQU$-SNUMDB5DUP(0);存放各類成績統(tǒng)計結(jié)果BUFF1DBANUMDUP(0);存放60BUFF2DBANUMDUP(0);存放60~69BUFF3DBANUMDUP(0);存放70~79BUFF4DBANUMDUP(0);存放80~89BUFF5DBANUMDUP(0);存放90DATAENDSXCHGAL,AH;余數(shù)保留在AL中SUBMOVCL,10;計算十位數(shù)CODESTART:MOVAX,DATAMOVDS,AXMOVMOVCL,ANUMMOVCH,0MOVMOVSI,OFFSETBUFFMOVDI,OFFSETSNUMD1:MOVAL,[SI]CMPAL,60HJAENEXT1MOVBUFF1[BX],ALINCBYTEPTR[DI]JMPNEXT5JANEXT2MOVBL,[DI+1]JMPNEXT5JANEXT3MOVBL,[DI+2]JMPNEXT5JANEXT4MOVBL,[DI+3]JMPNEXT5NEXT4:MOVBL,[DI+4]MOVBUFF4[BX],ALINCBYTEPTR[DI+4]NEXT5:INCSILOOPD1MOVAH,4CHINT21HCODEENDSDIVMOVCL,4SHLADDDL,AH;加個位數(shù)MOVAX,DXAXPOPDXPOPCXB2TOBCD輸入?yún)?shù):AX=4位壓縮BCD碼BCDTOB2PROCFARPUSHBXPUSHCXPUSHDXMOVBX,AXMOVCL,4ROLAX,CLANDMULCXMOVDX,AXMOVAX,BXMOVCL,8ROLAX,CLANDMOVCL,100;乘以100MULCLADDDX,AXMOVAX,BXMOVCL,4SHRAX,CLANDAX,000FHMULCLADDEND答:SENDMACROSCHARS,DCHARSLOCALNEXT,EXIT;LOCALPUSHAX;SCHARS,DCHARSPUSHSI;FLAGMOVSI,NEXT:MOVAL,SCHARS[SI]MOVDCHARS[SI],ALCMPAL,FLAGJZEXITINCSIJMPNEXTEXIT:POPSIPOPAX定義宏指令名FINSUM:它完成比較兩個數(shù)XY,若X>Y,則執(zhí)行X+2*YSUM,若X≤Y,則執(zhí)行2*X+YSUM。答:FINSUMMACROX,Y,SUMIFXGTYMOVAX,YSHLAX,1ADDAX,XMOVSUM,AXMOVAX,XSHLAX,1ADDAX,YMOVSUM,AXDOSAHDOS,再定義宏指令DISP,完成顯示字符的功能,并展開宏調(diào)用DISPDOSMACRONUMMOVAH,NUMMOVDL,ZIFUDOS02H宏調(diào)用:DISP:MOVDL,MOVAH,ANDBX,000FHADDDX,BXMOVAX,DXINT11|55|66|5-|44|33|22|1-|55|44|33|2-|55|44|3DATASEGMENTDWTABLEDW0,8,8,12,12,13,13,12,0,11,11,10,10,9,9,8,0DW12,12,11,11,10,10,9,0,12,12,11,11,10,10,9,0;FREQUECYDW8,8,12,12,13,13,12,0,11,11,10,10,9,9,8,0DATAENDSCODEASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVBP,49;CISHULEASI,TABLECONT:MOVBX,[SI]INCSIINCSISHLBX,1CALLPLAYDECBPJNZCONTEXIT:MOVAH,4CHINT21HPLAYMOVAL,10110110BOUT43H,ALMOVDX,12HDIVDIMOVAL,AHINAL,61HMOVAH,ALORAL,03HPOPDXPOPCXPOPBXBCDTOB2答:(1)將AX中兩位ASCII碼先轉(zhuǎn)化成數(shù)字,然后AH*10+AL。輸入?yún)?shù):AX=2ASCIIASCIITOB2PROCFARPUSHBXPUSHCXPUSHDXMOVBX,AXSUBAH,30HMOVMOVCL,10;乘以10MULCLMOVDX,AXMOVAX,BXSUBAL,30HMOVAH,0ADDAX,DXPOPDXPOPCXPOPBXASCIITOB2DISPLAYPROCFARPUSHBXPUSHDXMOVMOVCX,0FFFFHDELAY:MOVDX,1700HGOON:DECDXJNZGOONLOOPDELAYINAL,61HMOVAH,ALOUT61H,ALMOVCX,0FFFFHDELAY1:MOVDX,100HGOON1:DECDXJNZGOON1PLAYENDPCODEENDSENDSTARTMOVDL,AHMOVAH,2INT21H靜態(tài)RAMRAM答:(1)靜態(tài)RAM內(nèi)存儲的信息只要電源存在就能一直保持,而動態(tài)RAM的信息需要定靜態(tài)RAM的集成度比較低,運行速度快,而動態(tài)RAM的集成度高,運行相對較靜態(tài)RAM造價成本高,動態(tài)RAMROM、PROM、EPROM、EEPROM答:ROM是只讀存儲器,根據(jù)寫入方式的不同可以分為四類:掩膜型ROM、PROM、EPROM掩膜型ROM而寫入的,用戶對這類芯片無法進(jìn)行任何修改。PROMDRAM的CAS和RAS答:CAS為列地址選通信號,用于指示地址總線上的有效數(shù)據(jù)為列地址;RAS答:CacheCPU為了減少CPU與內(nèi)存之間的速度差異,提高系統(tǒng)性能,在慢速的DRAM和快速之間插入一速度較快、容量較小的SRAM,起到緩沖作用,使CPUSRAMCache數(shù)據(jù)卻沒有更新Cache在此方法中,當(dāng)CPUCache,CacheMOVAX,BXMOVDL,ALMOVAH,2INT21HPOPDXPOPBXDISPLAYHEXTOASCPROCFARPUSHBXPUSHCXPUSHDXMOVBX,AXMOVCL,4AH4SHRAX,CLANDAX,0F00HADDAH,30HCMPAH,3AHJBA1ADDA1:MOVMOVAX,BXAH4ADDAH,30HCMPAH,3AHJBA2ADDAH,7MOVBH,BLAL4MOVCL,4SHRBL,CLADDBL,30HCMPBL,3AHJBA3ADD此方法中,CacheCPUCache,Cache方法使得CPU可以持續(xù)運行而不必等待主存的更新,性能比通寫法要提高很多,但其Cache用1024×1RAM16K×8位參與片內(nèi)尋址?多少位組合成片選擇信號?(設(shè)地址總線為16)因此組成16K×816×8=128現(xiàn)有一存儲體芯片容量為512×44KB整個存儲系統(tǒng)最少需要12利用1024×8RAM4K×8A15~A124CS。芯片1的地址范圍8000H~83FFH、8400H~87FFH、8800H~8BFFH、8C00H~8FFFH芯片2的地址范圍4000H~43FFH、4400H~47FFH、4800H~4BFFH、4C00H~4FFFH芯片3的地址范圍2000H~23FFH、2400H~27FFH、2800H~2BFFH、2C00H~2FFFH芯片41000H~13FFH、1400H~17FFH、1800H~1BFFH、平信號。(8086)答:808620BHE=1,通過地址鎖存信號鎖存至8282,然后發(fā)出M/IO=1和RD=0,20BHE=1一字節(jié),將其數(shù)據(jù)讀出,送至數(shù)據(jù)總線,經(jīng)過由DEN=0DT/R=08286效邏輯電平信號。(8086)個寫周期將字的高8第一個寫周期中,BHE=0,第二個寫周期中,BHE=1。其余信號M/IO=1,WR=0,DEN=0,DT/R=1設(shè)計一個64K×874LS138EPROM2764答:因為EPROM27648K×8ROM,所以要構(gòu)成64K×88EPROM2764。其中CPUA12~A08EPROMA12~A0(沒有考慮驅(qū)動能力問題),A15、A14和A13與138的A、B、C三個端口相連,其他地址線(A19~A16)和M/IO組合連到G1、G2AG2BA19=0、A18=1、A17=0A16=0A3:MOVADD用8K×8EPROM2764、8K×8RAM626474LS13816KROM、16KRAM80868282,數(shù)據(jù)收發(fā)器8286。畫出存儲器系統(tǒng)與CPURD11##RD22##WR33##WR44##CMPBH,3AHJBA4ADDBH,7A4:MOVAL,BHPOPDXPOPCXPOPBXHEXTOASC輸入?yún)?shù):DX,AX:4ASCIIDISPLAYASCPROCFARPUSHBXPUSHCXMOVBX,DXMOVCX,AXMOVDL,BHMOVAH,02HINT21HMOVDL,BLINT21HMOVDL,CHINT21HMOVDL,CLINT21HMOVDL,’’INT21HPOPCXPOPBXDISPLAYASC答:DATASEGMENTTABLEDW6DUP(?)DATAENDSCODEASSUMECS:CODE,DS:DATASTART:MOVAX,DATAY33A1199A1188Y22Y33A00A00CBAA19A18A17A16A15A14A13~A0100000Y080000~83FFFH上題中若從74LS138Y2ROMRAMCBA19A18A17A16A15A14A13~A0100010Y288000~8BFFFHMOVDS,AXLEASI,MOVWORDPTR[SI],OFFSETCPUI/O?I/O答:CPUI/OCPUA/D而計算機(jī)送出的數(shù)字信號也必須經(jīng)D/A兩種方法?在8086/8088CPU答:在CPU與外設(shè)通信時,傳送的信息主要包括數(shù)據(jù)信息、狀態(tài)信息和控制信息。在接口在8086/8088CPUI/OCPU答:CPUDMA程序控制傳送方式:CPU采用中斷方式:CPU出端口的數(shù)據(jù)緩沖器已空時,才向CPU發(fā)中斷請求。CPU響應(yīng)中斷后,暫停執(zhí)行當(dāng)前的程序,轉(zhuǎn)去執(zhí)行管理外設(shè)的中斷服務(wù)程序。在中斷服務(wù)程序中,用輸入或輸出指令在CPU和外設(shè)之間進(jìn)行一次數(shù)據(jù)交換。等輸入或輸出操作完成之后,CPU又回去執(zhí)行原來的程序。DMA方式:也要利用系統(tǒng)的數(shù)據(jù)總線、地址總線和控制總線來傳送數(shù)據(jù)。原先,這些總線是由CPU管理的,但當(dāng)外設(shè)需要利用DMA方式進(jìn)行數(shù)據(jù)傳送時,接口電路可以向CPU提出請求,要求CPUDMACPU,臨時接管總線,控制外設(shè)和存儲器之間直接進(jìn)行高速的數(shù)據(jù)傳送。這種控制器能給出訪問內(nèi)存所需要的地址信息,并能自動修改地址指針,也能設(shè)定和修改傳送的字節(jié)數(shù),還能向存儲器和外設(shè)發(fā)出相應(yīng)的讀/寫控制信號。在DMA傳送結(jié)束后,它能釋放總線,把對總線的控制權(quán)又交還給CPUMOVWORDPTR[SI+2],OFFSETP1MOVWORDPTR[SI+4],OFFSETP2MOVWORDPTR[SI+6],OFFSETP3MOVWORDPTR[SI+8],OFFSETP4MOVWORDPTR[SI+10],OFFSETP5MOVAH,1INT21HSUBAL,30HSHLAL,1MOVAH,0MOVSI,AXMOVAH,4CHINT21HCODEENDSENDSTART出現(xiàn)次數(shù)最多的數(shù)及其出現(xiàn)次數(shù)分別存放于AX和BL中。DATATABLEDW100DUPNUMDW?COUNTDW0DATAENDSCODESEGMENTMAINPROCASSUMECS:CODE,DS:DATASTARTPUSHDS;設(shè)置返回DOSSUBAX,AXPUSHMOVAX,MOVDS,AXDSMOVSI,NEXT:MOVDX,答:查詢式傳送方式也稱為條件傳送方式。一般情況下,當(dāng)CPU在傳送數(shù)據(jù)前,CPU狀態(tài);如果該外設(shè)的輸入數(shù)據(jù)已經(jīng)準(zhǔn)備好,CPU當(dāng)輸入設(shè)備準(zhǔn)備好數(shù)據(jù)后,就向I/O方面將外設(shè)的數(shù)據(jù)打入接口的數(shù)據(jù)鎖存器中,另一方面使接口中的DQl。CPU首先執(zhí)行IN指令讀取狀態(tài)口的信息,這時M/IO和RD信號均變低,M/IO為低,使I/O譯碼器輸出低電平的狀態(tài)口片選信號CS1。CS1和RD經(jīng)門1相與后的低電乎輸出,使三態(tài)緩沖器開啟,于是Q(1READY(D0)位,并被讀入累加器。程序檢測到READY1IN指令讀數(shù)據(jù)口。這時M/IO和RD信號再次有效,先形成數(shù)據(jù)口片選信號CS2,CS2RD2器,另一方面將D0,一次數(shù)據(jù)傳送完畢。接著就可以開始下一個數(shù)據(jù)的傳送。當(dāng)當(dāng)CPUINM/IO和有效的端口地址信號使I/OCS1變低,CS1再和有效的RDlD1BUSYBUSY=l,表示外設(shè)處在接收上一個數(shù)據(jù)的忙碌狀態(tài)。只有在BUSY=0CPU才能向外設(shè)輸出新的數(shù)據(jù)。當(dāng)CPU檢查到BUSY=0時,便執(zhí)行OUT指令將數(shù)據(jù)送向數(shù)據(jù)輸出口。這時低電平的M/IO使I/OCS2變低,CS2再和WR2同時,選通信號的后沿還使DQBUSYl,表示忙碌。當(dāng)輸出設(shè)備從接口中取走數(shù)據(jù)后,就送回一個應(yīng)答信號ACK,它將D0,即置BUSY=0,允許CPU簡述在微機(jī)系統(tǒng)中,DMA答:DMA當(dāng)一個接口中有數(shù)據(jù)要輸入時,就向DMADMADMA到請求后,便往控制總線上發(fā)一個總線請求;如果CPU信號;DMA一個DMA1/ODMA回答信號以后,將數(shù)據(jù)送到數(shù)據(jù)總線上,并撤除DMA值減1,而且撤除總線請求信號,這樣,就完成了對一個數(shù)據(jù)的DMADMA輸結(jié)束時,往接口發(fā)一個結(jié)束信號,向CPUMOVAX,JNE志置“1”。查詢時,CPUPCISA答:IBMPC/XTPC8ISAAT80286CPUPC/AT16PCIPCIPCI答:PCI以33MHz的頻率進(jìn)行,傳輸速率為132MB/s,當(dāng)數(shù)據(jù)寬度為64位時,以66MHz的頻率運PCI總線支持突發(fā)傳送方式(BurstTransfer)PCICPUPCIPCI突發(fā)讀交易以周期幀信號FRAME#有效后開始進(jìn)行PCI周期為地址時段,此時主設(shè)備通過驅(qū)動地址總線尋址目標(biāo),驅(qū)動PCI因PCI(AD)和命令信號(C/BE#)都是分時復(fù)用的,所以每個PCI本次尋找的目標(biāo)和將要交易的類型是什么。PCI目標(biāo)設(shè)備的TRDY#INCDXADDSI,2LOOPCOMPADDR:CMPDXCOUNTJLEMOVCOUNT,DXMOVNUM,AXDONE:LOOPNEXTMOVCX,COUNTCX)MOVAXNUMAX)MAINCODEENDSEND答:DATASEGMENTNUMDB10DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAH,9INT21HMOVBP,4MOVSHLDX,CLINT21HJBD1CMPAL,'F'JAD1JBA1SUB答:當(dāng)CPU正常運行程序時,由于微處理器內(nèi)部事件或外設(shè)請求,引起CPU中斷正在運行可屏蔽中斷由引腳INTR,INTR維持到CPU求,CPU,CPUIF若IF=0,CPUIF=1,CPU不可屏蔽中斷由引腳NMI不能用軟件來屏蔽的,一旦有不可屏蔽中斷請求,如電源掉電等緊急情況,CPUINTAINTn:軟件中斷指令,其中n為中斷類型號CLI:中斷標(biāo)志位IF0兩種外部中斷:不可屏蔽中斷NMI和可屏蔽中斷①INTn②CPUCPU答:CPUCPU在響應(yīng)外部中斷,并轉(zhuǎn)入相應(yīng)中斷服務(wù)子程序的過程中,要依次做以下工作:⑵將標(biāo)志寄存器PSW的值入錢。⑶將PSWIFTF0,以屏蔽外部其它中斷請求,避免CPU⑷保護(hù)斷點,將當(dāng)前指令下面一條指令的段地址CSIP⑹中斷處理程序結(jié)束以后,從堆棧中依次彈出IP、CS和PSW,MOVAH,0ADDDX,AXDECBP答:由于響應(yīng)中斷時CPU(IF=0),故在中斷服務(wù)子程序中STI中斷結(jié)束命令EOI答:中斷結(jié)束命令EOI為避免錯誤,一般將中斷結(jié)束命令EOI將每個設(shè)備的中斷服務(wù)程序入口地址(矢量地址)集中,依次放在中斷向量表中。當(dāng)入口地址送到段寄存器和指令指針寄存器,CPU00000H~003FFH,占1K42節(jié)存放中斷入口地址的段地址,低2假定中斷類型號15ROUT15,編寫主程序為其建立一個中斷PUSHESMOVAX,0MOVES,AXMOVDI,54HMOVAX,OFFSETROUT15→AXMOVAX,SEGROUT15→AXPOP8086/8088CPU①INTn:n②除法錯中斷自動獲得類型號0,INTONMI:自動獲得中斷類型號CPU響應(yīng)可屏蔽中斷,對中斷接口電路發(fā)出兩個中斷響應(yīng)信號INTA收到第二個INTACPU給定SP=0100H,SS=0500H,PSW=0240H,在存儲單元中已有內(nèi)容為(00026H)=1000H,在段地址為0800H00A0HINT9,試問執(zhí)行INT9,SP、SS、IP、PSWJNZMOVAX,DXMOVDX,0MOVBX,10D2:DIVBXADDMOVNUM[SI],DLINCSICMPAX

溫馨提示

  • 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

提交評論