微機接口試題及答案_第1頁
微機接口試題及答案_第2頁
微機接口試題及答案_第3頁
微機接口試題及答案_第4頁
微機接口試題及答案_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、微機接口試題及答案分別說明下列指令的源操作數(shù)和目的操作數(shù)各采用什么尋址方式。MOVAX,2408H(2)MOVCL,0FFH(3)MOVBX,SI(4)M0V5BX,BL(5)M0VBP+100H,AX(6)M0VBX+DI,$(7)MOVDX,ES:BX+SI(8)MOVVALBP+DI,DXINAL,05H(10)MOVDS,AX答:立即數(shù),寄存器(2)立即數(shù),寄存器(3)寄存器間接,寄存器(4)寄存器,寄存器相對(5)寄存器,寄存器相對(6)立即數(shù),基址變址(7)基址變址,寄存器(8)寄存器,相對基址變址(9)直接端口尋址,寄存器(10)寄存器,寄存器已知:DS=1000H,BX=020

2、0H,SI=02H,內存10200H10205H單元的內容分別為10H,2AH,3CH,46H,59H,6BH。下列每條指令執(zhí)行完后AX寄存器的內容各是什么?MOVAX,0200H(2)MOVAX,200H(3)MOVAX,BX(4)MOVAX,3BX(5)MOVAX,BX+SI(6)MOVAX,2BX+SI答:(1)0200H(2)2A10H(3)0200H(4)5946H(5)463CH6B59H3.設DS=1000H,ES=2000H,SS=3500H,SI=00A0H,DI=0024H,BX=0100H,BP=0200H,數(shù)據(jù)段中變量名為VAL的偏移地址值為0030H,試說明下列源操作

3、數(shù)字段的尋址方式是什么?物理地址值是多少?(1)M0VAXJ100H(2)M0VAX,VAL(3)M0VAX,BX(4)M0VAX,ES:BX(5)M0VAX,SI(6)M0VAXJBX+10H(7)M0VAX,BP(8)M0VAX,VALBPSI(9)M0VAX,VALBXDI(10)MOVAX,BPDI答:直接,10100H直接,10030H寄存器間接,10100H(4)寄存器間接,20100H(5)寄存器間接,100A0H(6)寄存器相對,10110H(7)寄存器間接,35200H(8)相對基址變址,352D0H(9)相對基址變址,10154H(10)基址變址,35224H寫出下列指令的

4、機器碼MOVAL,CL(2)MOVDX,CX(3)MOVBX+100H,3150H答:(1)1000101011000001B1000101111010001B110001111000011100000000000000010101000000110001B已知程序的數(shù)據(jù)段為:DATASEGMENTADB$,10HBDBCOMPUTERCDW1234H,0FFHDDB5DUPEDD1200459AHDATAENDS求下列程序段執(zhí)行后的結果是什么。MOVAL,AMOVDX,CXCHGDL,AMOVBX,OFFSETBMOVCX,3BXLEABX,DLDSSI,ELESDI,E答:MOVAL,AA

5、L=24HMOVDX,CDX=1234HXCHGDL,ADL=24H,A=34HMOVBX,OFFSETBBX=2MOVCX,3BXCX=5550HLEABX,DBX=000EHLDSSI,EDS=1200H,SI=459AHLESDI,EES=1200H,DI=459AH指出下列指令中哪些是錯誤的,錯在什么地方。(1)MOVDL,AX(2)MOV8650H,AX(3)MOVDS,0200HMOVBX,1200H(5)MOVIP,0FFHMOVBX+SI+3,IP(7)MOVAX,BXBP(8)MOVAL,ES:BP(9)MOVDL,SIDIMOVAX,OFFSET0A20H(11)MOVAL

6、,OFFSETTABLE(12)XCHGAL,50H(13)INBL,05H(14)OUTAL,0FFEH答:(1)長度不匹配(2)立即數(shù)不能做目的操作數(shù)(3)段寄存器不能用立即數(shù)賦值(4)兩個內存單元不能直接傳送數(shù)據(jù)IP不能用指令直接修改(6)指令中不能出現(xiàn)IP(7)BX/BP應與SI/DI搭配(8)正確(9)SI/DI應與BX/BP搭配(10)OFFSET后應跟內存單元(11)偏移地址為16位,AL長度不夠(12)立即數(shù)不能用于XCHG(13)IN必須用AL/AX(14)操作數(shù)順序反向;地址應為8位已知當前數(shù)據(jù)段中有一個十進制數(shù)字09的7段代碼表,其數(shù)值依次為40H,79H,24H,30H

7、,19H,12H,02H,78H,00H,18H。要求用XLAT指令將十進制數(shù)57轉換成相應的7段代碼值,存到BX寄存器中,試寫出相應的程序段。答:DATASEGMENTTABLEDB40H,79H,24H,30H,19H,12H,02H,78H,00H,18HDATAENDSMOVAL,5MOVBX,OFFSETTABLEXLATTABLEMOVCL,ALMOVAL,7XLATTABLEMOVBL,ALMOVBH,CL8.已知當前SS=1050H,SP=0100H,AX=4860H,BX=1287H,試用示意圖表示執(zhí)行下列指令過程中,堆棧中的內容和堆棧指針SP是怎樣變化的。PUSHAXPUS

8、HBXPOPBXPOPAX答答-:U)指警執(zhí)行前執(zhí)irFUSH職后1&500HP-fiOH4SH:4執(zhí)疔PCP后執(zhí)行PUSHEX后指9.下列指令完成什么功能?(1)ADDAL,DH(2)ADCBX,CX(3)SUBAX,2710H(4)DECBX(5)NEGCX(6)INCBL(7)MULBX(8)DIVCL答:(1)AL+DHtALBX+CX+CFtBXAX-2710HAX(4)BX-1tBXO-CXtCXBL+1BLAX*BXtDX,AX(8)AX/CL商tAL,余數(shù)tAH10.已知AX=2508H,BX=0F36H,CX=0004H,DX=1864H,求下列每條指令執(zhí)行后的結果是什么?標

9、志位CF等于什么?ANDAH,CL(2)0RBL,30H(3)N0TAXX0RCX,0FFF0H(5)TESTDH,0FHCMPCX,00H(7)SHRDX,CL(8)SARAL,1(9)SHLBH,CLSALAX,1(11)RCLBX,1(12)RORDX,CL答:(1)AX=0408H,CF=0(2)BX=0F36H,CF=0AX=0DAF7H,CF不變(4)CX=0FFF4H,CF=0DX=01864H,CF=0(6)CX=0004H,CF=0(7)DX=0186H,CF=0(8)AX=2504H,CF=0(9)BX=0F036H,CF=0(10)AX=4A10H,CF=0BX=1E6C

10、/1E6DH,CF=0(12)DX=4186H,CF=011.假設數(shù)據(jù)段定義如下:DATASEGMENTSTRINGDBThePersonalComputer&TVDATAENDS試用字符串操作等指令編程完成以下功能:把該字符串傳送到附加段中偏移量為GET_CHAR開始的內存單元中。比較該字符串是否與TheComputer相同,若相同則將AL寄存器的內容置1,否則置0。并要求將比較次數(shù)送到BL寄存器中。檢查該字符串是否有&,若有則用空格字符將其替換。把字符串大寫字母傳送到附加段中以CAPS開始的單元中,其余字符傳到以CHART開始的單元中。然后將數(shù)據(jù)段中存儲上述字符串的單元清0。答:(1)CL

11、DLEASI,STRINGLEADI,GET_CHARMOVCX,26REPMOVSB(2)補充在附加段定義STRING1DBThecomputerMOVAL,1CLDLEASI,STRINGLEADI,STRING1MOVCX,12REPZCMPSBJZSKIPMOVAL,0SKIP:MOVBX,12SUBBX,CXMOVAX,DATAMOVES,AXCLDMOVAL,&LEADI,STRINGMOVCX,26NEXT:REPNESCASBJZFINDJMPEXITFIND:MOVBYTEPTRDI-1,JCXZEXITJMPNEXTEXIT:LEASI,STRINGLEADI,CAPSLE

12、ABX,CHARTMOVCX,26NEXT:MOVAL,SIcmpal,5a5JBOTHERcmpal,5z5JAOTHERMOVES:DI,ALINCDIJMPSKIPOTHER:MOVES:BX,ALINCBXSKIP:MOVBYTEPTRSI,0INCSILOOPNEXT編程將AX寄存器中的內容以相反的順序傳送到DX寄存器中,并要求AX中的內容不被破壞,然后統(tǒng)計DX寄存器中的個數(shù)是多少。答:MOVBL,0PUSHAXMOVDX,0MOVCX,16NEXT:SHLAX,1JNCSKIPINCBLSKIP:RCRDX,1LOOPNEXTSTOP:POPAX設CS=1200H,IP=0100H

13、,SS=5000H,SP=0400H,DS=2000H,SI=3000H,BX=0300H,(20300H)=4800H,(20302H)=00FFH,TABLE=0500H,PR0G_N標號的地址為1200:0278H,PROG_F標號的地址為3400H:0ABCH。說明下列每條指令執(zhí)行完后,程序將分別轉移到何處執(zhí)行?JMPPROG_NJMPBXJMPBXJMPFARPROG_FJMPDWORDPTRBX如將上述指令中的操作碼JMP改成CALL,則每條指令執(zhí)行完后,程序轉向何處執(zhí)行?并請畫圖說明堆棧中的內容和堆棧指針如何變化。答:(1)1200H:0278H1200H:0300H1200H:

14、4800H3400H:0ABCH00FFH:4800H將操作碼JMP改成CALL后:1200H:0278H指令長度為3,則IP=0100H+3=0103H,入棧00FFH:4800H指令長度為2,則IP=0100H+2=0102H,入棧14.在下列程序段括號中分別填入以下指令(1)L00PNEXT(2)L00PENEXT(3)L00PNENEXT試說明在這三種情況下,程序段執(zhí)行完后,AX,BX,CX,DX的內容分別是什么。START:MOVAX,01HMOVBX,02HMOVDX,03HMOVCX,04HNEXT:INCAXADDBX,AXSHRDX,1()答:(1)AX=05HBX=10HC

15、X=0DX=0AX=02HBX=04HCX=03HDX=01HAX=03HBX=07HCX=02HDX=015.某班有7個同學英語成績低于80分,分數(shù)存在ARRAY數(shù)組中,試編程完成以下工作:給每人加5分,結果存到NEW數(shù)組中把總分存到SUM單元中答:DATASEGMENTARRAYDB?,?,?,?,?,?,?NEWDB7DUP(?)SUMDW0DATAENDSMOVAX,DATAMOVDS,AX(1)LEASI,ARRAYLEADI,NEWMOVCX,7NEXT:MOVAL,SIADDAL,5MOVDI,ALINCSIINCDILOOPNEXT(2)LEASI,ARRAYCLCSP5000

16、H:0000H5000H:03FCH5000H:03FEH5000H:0400HMOVCX,7NEXT1:MOVAL,SIMOVAH,0ADCSUM,AXINCSILOOPNEXT1中斷向量表的作用是什么?它放在內存的什么區(qū)域內?中斷向量表中的什么地址用于類型3的中斷?答:中斷向量表用來存放中斷服務程序的入口地址。8086的256類中斷的入口地址要占用1K字節(jié),位于內存00000H003FFH的區(qū)域內。中斷向量表中0000CH0000FH用于類型3的中斷。設類型2的中斷服務程序的起始地址為0485:0016H,它在中斷向量表中如何存放?答:物理地址內容00008H16H00009H00H000

17、0AH85H0000BH04H若中斷向量表中地址為0040H中存放240BH,0042H單元里存放的是D169H,試問:(1)這些單元對應的中斷類型是什么?(2)該中斷服務程序的起始地址是什么?答:(1)10H(2)D169H:240BH19.簡要說明8086響應類型04中斷的條件是什么?答:類型0:除法錯中斷執(zhí)行除法指令時,若除數(shù)為0或所得商超過寄存器能容納的范圍,則自動產生類型0中斷。類型1:單步中斷若CPU的單步標志TF=1,則每執(zhí)行完一條指令后,自動產生類型1中斷。類型2:不可屏蔽中斷NMI當8086的NMI引腳上接收到由低變高的電平變化時,將自動產生類型2中斷。類型3:斷點中斷若在程

18、序中某位置設置斷點,當程序執(zhí)行到該斷點時,則產生類型3中斷。類型4:溢出中斷若溢出標志OF=1,則可由溢出中斷指令INTO產生類型4中斷。第四章下列變量各占多少字節(jié)?A1DW23H,5876HA2DB3DUP,OAH,ODH,$A3DD5DUP(1234H,567890H)A4DB4DUP(3DUP(1,2,ABC)答:A1占4個字節(jié)A2占6個字節(jié)A3占40個字節(jié)A4占60個字節(jié)下列指令完成什么功能?MOVAX,00FFHAND1122H+3344HMOVAL,15GE1111BMOVAX,00FFHLE255+6/5ANDAL,50MOD4ORAX,0F00FHAND1234OR00FFH答

19、:(1)將0066H傳送給AX將0FFH傳送給AL將OFFFFH傳送給AXANDAL,02HORAX,00FFH有符號定義語句如下:BUFDB3,4,5,123ABUFDB0LEQUABUF-BUF求L的值為多少?答:L=6假設程序中的數(shù)據(jù)定義如下:PARDW?PNAMEDB16DUP(?)COUNTDD?PLENTHEQU$-PAR求PLENTH的值為多少?表示什么意義?答:PAR的偏移地址為0,PLENTH當前偏移地址$=2+16+4=22,$-PAR=22,故PLENTH的值為22。若在PLENTH所在行有變量定義,則$表示該變量的偏移地址,即$表示PLENTH所在行的當前偏移地址。故P

20、LENTH表示從當前行到PAR之間定義的變量所占的字節(jié)個數(shù)。對于下面的數(shù)據(jù)定義,各條MOV指令執(zhí)行后,有關寄存器的內容是什么?DA1DB?DA2DW10DUPDA3DBABCDMOVAX,TYPEDA1MOVBX,SIZEDA2MOVCX,LENGTHDA3答:AX=1,BX=20,CX=1下段程序完成后,AH等于什么?INAL,5FHTESTAL,80HJZL1MOVAH,0JMPSTOPL1:MOVAH,OFFHSTOP:HLT答:討論從端口5FH輸入的數(shù)據(jù)最高位的情況。若最高位為1,則AH=0;若最高位為0,則AH=0FFH。7.編程序完成下列功能:利用中斷調用產生5秒延時。利用中斷調用

21、,在屏幕上顯示19之間隨機數(shù)。答:(1)可以利用中斷類型1CH來處理,因為在系統(tǒng)時鐘的中斷處理程序中,時鐘中斷一次要調用一次INT1CH,即每隔55ms,產生一次1CH中斷,要產生5秒延時,只要中斷5s/55ms=91次即可。又因1CH中斷處理程序中只有一條IRET指令,故可將用戶的程序代替原有的INT1CH程序。DATASEGMENTCOUNTDW91;計數(shù)器MESSDB5sdelayed!,0AH,0DH,$DATAENDSCODESEGMENTMAINPROCFARASSUMECS:CODE,DS:DATA,ES:DATASTART:PUSHDSMOVAX,0PUSHAXMOVAX,DA

22、TAMOVDS,AXMOVAL,1CH;得到原中斷向量MOVAH,35HINT21HPUSHES存儲原中斷向量PUSHBXPUSHDSMOVDXQFFSETDELAY;DELAY的偏移地址和段地址MOVAX,SEGDELAYMOVDS,AXMOVAL,1CH;設置中斷向量MOVAH,25HINT21HPOPDSINAL,21H;設置中斷屏蔽位ANDAL,OFEHOUT21H,ALSTIMOVDI,2000H;主程序延遲,在執(zhí)行此段程序期間A1:MOVSI,3000H;產生中斷A2:DECSIJNZA2DECDIJNZA1POPDX;取原中斷向量POPDSMOVAL,1CHMOVAH,25HIN

23、T21HRETMAINENDPDELAYPROCNEARPUSHDSPUSHAXPUSHCXPUSHDXMOVAX,DATAMOVDS,AXSTIDECCOUNT;5秒計數(shù)JNZEXITMOVDX,OFFSETMESS;顯示信息MOVAH,09HINT21HMOVCOUNT,91;5秒的值EXIT:CLIPOPDXPOPCXPOPAXPOPDSIRETDELAYENDPCODEENDSENDSTART可以利用INT1AH,讀取當前時間的1/100秒為隨機數(shù)。CODESEGMENTASSUMECS:CODESTART:MOVAH,0INT1AH;讀取當前時間CH:CL=時:分MOVAL,DL;D

24、H:DL=秒:1/100秒MOVAH,0MOVBL,9DIVBLINCAHMOVDL,AHADDDL,30HMOVAH,2INT21HMOVAH,4CHINT21HCODEENDSENDSTART編兩個通過過程完成將AX中存放的二進制數(shù)轉換成壓縮型BCD碼以及將BCD碼轉換成二進制數(shù)。答:(1)將AX中的二進制數(shù)先后除以1000,100和10,每次除法所得的商,即是BCD數(shù)的千位、百位和十位數(shù),余數(shù)是個位數(shù)。子程序名:B2TOBCD輸入參數(shù):AX=+六位二進制數(shù)輸出參數(shù):CF=0,則AX=4位壓縮型BCD碼。CF=1,則要轉換的數(shù)大于9999,AX不變。使用寄存器:CX:存放除數(shù),DX:存放中

25、間結果。B2TOBCDPROCFARCMPAX,9999;AX9999,則CF置1JBETRANSTCJMPEXITTRAN:PUSHCXPUSHDXSUBDX,DX;DX清0MOVCX,1000;計算千位數(shù)DIVCXXCHGAX,DX商在DX中,余數(shù)在AX中MOVCL,4SHLDX,CL;DX左移4位MOVCL,100;計算百位數(shù)DIVCLADDDL,AL;百位數(shù)加到DL中,DX左移4位MOVCL,4SHLDX,CLXCHGAL,AH;余數(shù)保留在AL中SUBAH,AHMOVCL,10;計算十位數(shù)DIVCLADDDL,AL;十位數(shù)加到DL中,DX左移4位MOVCL,4SHLDX,CLADDDL

26、,AH;加個位數(shù)MOVAX,DX;結果送到AX中POPDXPOPCXEXIT:RETB2TOBCDENDP(2)將AX中4位BCD碼順序乘以1000,100,10和1,然后求和即得。子程序名:BCDTOB2輸入參數(shù):AX=4位壓縮BCD碼輸出參數(shù):AX=+六位二進制數(shù)使用寄存器:BX:暫存數(shù)據(jù),CX:存放乘數(shù),DX:存放中間結果BCDTOB2PROCFARPUSHBXPUSHCXPUSHDXMOVBX,AXMOVCL,4ROLAX,CLANDAX,000FHMOVCX,1000;乘以1000MULCXMOVDX,AXMOVAX,BXMOVCL,8ROLAX,CLANDAX,000FHMOVCL

27、,100;乘以100MULCLADDDX,AXMOVAX,BXMOVCL,4SHRAX,CLANDAX,OOOFHMOVCL,1O;乘以10MULCLADDDX,AXANDBX,OOOFHADDDX,BXMOVAX,DXPOPDXPOPCXPOPBXRETBCDTOB2ENDP編寫兩個通用過程,一個完成ASCII碼轉換成二進制數(shù)功能,另一個完成ASCII字符顯示輸出功能。答:(1)將AX中兩位ASCII碼先轉化成數(shù)字,然后AH*10+AL。子程序名:ASCIITOB2輸入參數(shù):AX=2位ASCII碼輸出參數(shù):人火=轉換后二進制數(shù)使用寄存器:BX,CX,DXASCIIT0B2PROCFARPUSHBXPUSHCXPUSHDXMOVBX,AXSUBAH,30HMOVAL,AHMOVCL,10;乘以10MULCLMOVDX,AXMOVAX,BXSUBAL,30HMOVAH,0ADDAX,DXPOPDXPOPCXPOPBXRETASCIIT0B2ENDP(2)使用2號DOS功能調用顯示字符。子程序名:DISPLAY輸

溫馨提示

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

評論

0/150

提交評論