完整版微機(jī)原理與接口技術(shù)習(xí)題解答3_第1頁(yè)
完整版微機(jī)原理與接口技術(shù)習(xí)題解答3_第2頁(yè)
完整版微機(jī)原理與接口技術(shù)習(xí)題解答3_第3頁(yè)
完整版微機(jī)原理與接口技術(shù)習(xí)題解答3_第4頁(yè)
完整版微機(jī)原理與接口技術(shù)習(xí)題解答3_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、習(xí)題33.1 簡(jiǎn)要分析8086的指令格式由哪些部分組成,什么是操作碼?什么是操作數(shù)?尋址和尋址方式的含義是什么?8086指令系統(tǒng)有哪些尋址方式?【解答】8086的指令格式由操作碼和操作數(shù)字段組成。操作碼:要完成的操作。操作數(shù):參與操作的對(duì)象。尋址:尋找操作數(shù)或操作數(shù)地址的過(guò)程。尋址方式:指令中給由的找到操作數(shù)或操作數(shù)地址采用的方式。8086指令系統(tǒng)的尋址方式主要有立即數(shù)尋址、寄存器尋址、存儲(chǔ)器尋址和I/O端口尋址。其中,存儲(chǔ)器尋址可進(jìn)一步分為直接尋址、寄存器間接尋址、寄存器相對(duì)尋址、基址變址尋址、相對(duì)基址變址尋址;I/O端口指令I(lǐng)N和OUT使用的端口尋址方式有直接尋址和間接尋址。3.2 設(shè)(D

2、S)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,數(shù)據(jù)變量VAL的偏移地址為0050H,請(qǐng)指由下列指令的源操作數(shù)字段是什么尋址方式?它的物理地址是多少?(1) MOVAX,21H(2) MOVAX,BX(3) MOVAX,1000H(4) MOVAX,VALMOVAX(6)MOVAXMOVAX(8)MOVAX(9)MOVAX(10)MOVAX(11)MOVAX(12)MOVAX【解答】,BX,ES:BX,BP,SI,BX+10,VALBX,BXSI,VALBXSI(1) MOVAX,21H立即尋址,源操作數(shù)直接放在指

3、令中(2) MOVAX,BX寄存器尋址,源操作數(shù)放在寄存器BX中(3) MOVAX,1000H直接尋址,EA=1000H,PA=(DS)X10H+EA=2000H10H1000H=21000H(4) MOVAX,VAL直接尋址,EA=VAL=0050H,PA=(DS)X10H+EA=2000HX10H+0050H=20050H(5) MOVAX,BX寄存器間接尋址,EA=(BX)=0100H,PA=(DS)X10H+EA=2000HX10H+0100H=20100H(6) MOVAX,ES:BX寄存器間接尋址,EA=(BX)=0100H,PA=(ES)X10H+EA=2100HX10H+010

4、0H=21100H(7) MOVAX,BP寄存器間接尋址,EA=(BP)=0010H,PA=(SS)X10H+EA=1500HX10H+0010H=15010H(8) MOVAX,SI寄存器間接尋址,EA=(SI)=00A0H,PA=(DS)X10H+EA=2000HX10H+00A0H=200A0H(9) MOVAX,BX+10相對(duì)寄存器尋址,EA=(BX)+10D=0100H+000AH=010AH,PA=(DS)X10H+EA=2000HX10H+010AH=2010AH(10) MOVAX,VALBX相對(duì)寄存器尋址,EA=(BX)+VAL=0100H+0050H=0150H,PA=(D

5、S)X10H+EA=2000HX10H+0150H=20150H(11) MOVAX,BXSI基址變址尋址,EA=(BX)+(SI)=0100H+00A0H=01A0H,PA=(DS)X10H+EA=2000HX10H+01A0H=201A0H(12) MOVAX,VALBXSI相對(duì)基址變址尋址,EA=(BX)+(SI)+VAL=0100H+00A0H+0050H=01F0H,PA=(DS)X10H+EA=2000HX10H+01F0H=201F0H3.3給定寄存器及存儲(chǔ)單元的內(nèi)容為:(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100)=32H,(20101)=51

6、H,(20102)=26H,(20103)=83H,(21200)=1AH,(21201)=B6H,(21202)=D1H,(21203)=29H。試說(shuō)明下列各條指令執(zhí)行完后,AX寄存器中保存的內(nèi)容是什么。MOVAX,1200H(2)MOVAX,BX(3)MOVAX1200H(4)MOVAX,BX(5)(6)MOVAXBXSI【解答】(1) MOVAX,1200H(2) MOVAXBX=0100HMOVAX,1100HBX;執(zhí)行后,(AX)=1200H;執(zhí)行后,(AX)=(BX)(3) MOVAX1200H直接尋址,EA=VAL=1200H,PA=(DS)X10H+EA=2000HX10H+1

7、200H=21200H,執(zhí)行后,(AX)=B61AH(4) MOVAX,BXEA=(BX)=0100H,PA=(DS)X10H+EA=2000HX10H+0100H=20100H,執(zhí)行后,(AX)=5132H(5) MOVAX,1100HBXEA=(BX)+1100H=0100H+1100H=1200H,PA=(DS)X10H+EA=2000HX10H+1200H=21200H,執(zhí)行后,(AX)=B61AH(6) MOVAX,BXSIEA=(BX)+(SI)=0100H+0002H=0102H,PA=(DS)X10H+EA=2000HX10H+0102H=20102H,執(zhí)行后,(AX)=29D

8、1H3.4分析下列指令的正誤,對(duì)于錯(cuò)誤的指令要說(shuō)明原因并加以改正。(1) MOVAH,BX(2) MOVBX,SI(3) MOVAX,SIDI(4) MOVMYDATBXSI,AX(5) MOVBYTEPTRBX,1000(6) MOVBX,OFFSETMAYDATSI(7) MOVCS,AX(8) MOVDS,BP【解答】(1) MOVAHBX錯(cuò)誤,寄存器類型不匹配,可改為MOVAX,BX(2) MOVBXSI錯(cuò)誤,兩個(gè)操作數(shù)不能都為存儲(chǔ)單元,可改為MOVBX,SI或MOVBX,SI(3) MOVAXSIDI錯(cuò)誤,尋址方式中只能由現(xiàn)一個(gè)變址寄存器,可改為MOVAX,BXDI(4) MOVMY

9、DATBXSI,ES:AX錯(cuò)誤,AX簽不能有段跨越前綴,去掉ES:,改為MOVMYDATBXSI,AX(5) MOVBYTEPTRBX,1000錯(cuò)誤,1000超由字節(jié)空間存儲(chǔ)范圍(6) MOVBX,OFFSETSI;正確(7) MOVCS,AX錯(cuò)誤,MOV指令CS不能做目的操作數(shù),可改為MOVDS,AX(8) MOVDS,AX;正確注:本題錯(cuò)誤改正部分有的答案并不唯一,可參考原題題意改成合法形式。3.5設(shè)VAR1、VAR2為字變量,LAB為標(biāo)號(hào),分析下列指令的錯(cuò)誤之處并加以改正。(1) ADDVAR1,VAR2(2)MOVAL,VAR2(3)SUBAL,VAR1(4)JMPLABSI(5) J

10、NZVAR1(6)JMPNEARLAB【解答】(1) ADDVAR1,VAR2錯(cuò)誤,兩個(gè)操作數(shù)不能都為存儲(chǔ)單元,可改為MOVBXVAR2ADDVAR1BX(2) MOVALVAR2錯(cuò)誤,數(shù)據(jù)類型不匹配,可改為MOVAX,VAR2(3) SUBALVAR1錯(cuò)誤,數(shù)據(jù)類型不匹配,可改為SUBAX,VAR1(4) JMPLABSI錯(cuò)誤,寄存器相對(duì)尋址形式中不能用標(biāo)號(hào)做位移量,可改為JMPVAR1SI(5) JNZVAR1錯(cuò)誤,條件跳轉(zhuǎn)指令只能進(jìn)行段內(nèi)短跳轉(zhuǎn),所以后面只能跟短標(biāo)號(hào)??筛臑镴NZLAB(6) JMPNEARLAB錯(cuò)誤,缺少運(yùn)算符PTR,可改為JMPNEARPTRLAB注:本題錯(cuò)誤改正部分

11、有的答案并不唯一,可參考原題題意改成合法形式。3.6寫(xiě)生能夠完成下列操作的8086CPU指令。(1)把4629H傳送給AX寄存器;MOVAX,4629H(2)從AX寄存器中減去3218H;SUBAX,3218H(3)把BUF的偏移地址送入BX中。LEABX,BUF【解答】(1) MOVAX,4629H(2) SUBAX,3218H(3) LEABX,BUF3.7 根據(jù)以下要求寫(xiě)由相應(yīng)的匯編語(yǔ)言指令。(1) 把BX和DX寄存器的內(nèi)容相加,結(jié)果存入DX寄存器中;ADDDX,BX(2)用BX和SI的基址變址尋址方式,把存儲(chǔ)器中的一個(gè)字節(jié)與AL內(nèi)容相加,并保存在AL寄存器中;ADDAL,BXSI(3)

12、用寄存器BX和位移量21B5H的變址尋址方式把存儲(chǔ)器中的一個(gè)字和(CX)相加,并把結(jié)果送回存儲(chǔ)器單元中;ADDBX+21B5H,CX(4)用位移量2158H的直接尋址方式把存儲(chǔ)器中的一個(gè)字與數(shù)3160H相加,并把結(jié)果送回該存儲(chǔ)器中;MOVAX,3160HADDAX,2158HMOV2158H,AX(5)把數(shù)25H與(AL)相加,結(jié)果送回寄存器AL中。ADDAL,25H【解答】(2) ADDDX,BX(3) ADDAL,BXSI(4) ADD21B5HBX,CX(5) ADDWORDPTR2158H,3160H(6) ADDAL,25H3.8 寫(xiě)生將首地址為BLOCK的字?jǐn)?shù)組的第6個(gè)字送到CX寄

13、存器的指令序列,要求分別使用以下幾種尋址方式:(1)以BX的寄存器間接尋址LEABX,BLOCKMOVCX,BX+10(2)以BX的寄存器相對(duì)尋址(3)以BX、SI的基址變址尋址LEABX,BLOCKMOVSI,10MOVCX,BXSI【解答】LEABX,BLOCK+10MOVCX,BX(2)LEABX,BLOCKMOVCX,10BXLEABX,BLOCKMOVSI,10MOVCX,BXSI3.9 執(zhí)行下列指令后,AX寄存器中的內(nèi)容是什么?TABLEDB10,20,30,40,50ENTRYDW3MOVBX,OFFSETTABLEADDBX,ENTRYMOVAX,BXAX=【解答AX=3228

14、H3.10 下面是將內(nèi)存一字節(jié)數(shù)據(jù)高4位和低4位互換并放回原位置的程序,找由錯(cuò)誤并改正。DATASEGMENTDD1DB23HDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEASI,OFFSETDD1MOVAL,SIMOVCL,4RCRALCLMOVSIALMOVAH4CHINT21HCODEENDSENDSTART【解答】程序第8行錯(cuò)誤:LEASI,OFFSETDD1,應(yīng)去掉OFFSET;程序第10行錯(cuò)誤:RCRAL,CL,應(yīng)使用ROR或ROL,改為RORAL,CL3.11已知用寄存器BX作地址指針,自BUF

15、所指的內(nèi)存單元開(kāi)始連續(xù)存放著3個(gè)無(wú)符號(hào)數(shù)字?jǐn)?shù)據(jù),編程序求它們的和,并將結(jié)果存放在這3個(gè)數(shù)之后?!窘獯稹繀⒖汲绦蛉缦拢篖EABX,BUFMOVAX,BXADDAX,BX+2ADDAX,BX+4MOVBX+6,AX3.12分析匯編語(yǔ)言源程序應(yīng)該由哪些邏輯段組成?各段的作用是什么?語(yǔ)句標(biāo)號(hào)和變量應(yīng)具備哪3種屬性?【解答】匯編語(yǔ)言源程序應(yīng)該由若干個(gè)邏輯段組成,可以有若干個(gè)數(shù)據(jù)段、代碼段、堆棧段和附加數(shù)據(jù)段,至少要有一個(gè)代碼段。各段的作用如下:(1)代碼段用來(lái)存放程序和常數(shù)。(2)數(shù)據(jù)段用于數(shù)據(jù)的保存。(3)堆棧段用于保護(hù)數(shù)據(jù),尤其在子程序調(diào)用、中斷過(guò)程中進(jìn)行現(xiàn)場(chǎng)信息保護(hù)。(4)附加數(shù)據(jù)段用于數(shù)據(jù)的保存

16、。語(yǔ)句標(biāo)號(hào)和變量應(yīng)具備的3種屬性:段屬性、偏移屬性和類型屬性。3.13執(zhí)行完下列程序后,回答指定的問(wèn)題。MOVAX,0MOVBX,2MOVCX,50LP:ADDAX,BXADDBX,2LOOPLP問(wèn):(1)該程序的功能是O(2)程序執(zhí)行完成后,(AX)=?!窘獯稹?1)完成0到100間所有偶數(shù)求和的功能。(2)25503.14 編寫(xiě)程序,計(jì)算下面函數(shù)的值。2x(x0)s3x(0x10)4xx10【解答】DATASEGMENTXDW34SDW?DATAENDSCODESEGMENTASSUMESTART:MOVMOVMOVCS:CODE,AX,DATADS,AXDS:DATAAX«-X

17、;將X送到aX馬?DOUB司doub1010嗎?TRIB向tribDOUB:1TRIB:EXIT:AX4CHCODECMPAX(AX)>'0JLCMPJLESALSAJMJMPADDMOVINTENDSEND;是,AX;否,(ax);是,AX-1EXITSALAX;否,乘以AXEXITSALAX°XMOVAX;乘以321HSTARTS,;保存結(jié)果AH;結(jié)束注意,在比較的過(guò)程中使用的是針對(duì)帶符號(hào)數(shù)的跳轉(zhuǎn)指令,X應(yīng)該看作帶符號(hào)數(shù)。程序中還用了移位指令代替了乘法指令。3.15 從鍵盤(pán)輸入一系列字符,以回車(chē)符結(jié)束,編程統(tǒng)【解答】DATASEGMENT計(jì)其中非數(shù)字字符的個(gè)數(shù)。BL

18、OCKDB100DUP(?)COUNTDB?DATAENDSCODESEGMENTASSUMEDS:DATACS:CODESTART:MOVAXDATAMOVDSAXMOVDL0LEASIBLOCKLP:MOVAH1INT21HCMPAL,0DHJZEXITMOVSI,ALCMPAL30HJAENEXTCMPAL,39HJBENEXTINCDLNEXT:INCSIJMPLPEXIT:MOVCOUNTDLMOVAH4CHINT21HCODEENDSENDSTART3.16 已知在內(nèi)存中從BLOCK單元起存放有20個(gè)帶符號(hào)字節(jié)數(shù)據(jù),統(tǒng)計(jì)其中負(fù)數(shù)的個(gè)數(shù)并放入COUNT單元?!窘獯稹緿ATASEGME

19、NTBLOCKDB-7,1,12,-90,-70,34,-1,56,45,-12DB-3,-4,23,0,12,11,-9,-8,67,-56CNEQU$-BLOCKCOUNTDB?DATAENDSASSUMEDS:DATASTART:MOVAXDATADSAXDL0LEASIBLOCKMOVCXCS:CODEMOVMOVCODESEGMENTLP:MOVALTESTALjzneXtINCDLDLNEXT:INCSILOOPLPMOVCOUNTMOVAH4CHNT21HCODEENDSENDSTART3.17 從鍵盤(pán)輸入一個(gè)大寫(xiě)英文字母,將其轉(zhuǎn)換為小寫(xiě)字母并顯示由來(lái),要求輸入其它字符時(shí),能夠有由錯(cuò)提示信息?!窘獯稹緿ATASEGMENTMESSDB'INPUPERROR!',0AH,0DH,$,DATAENDSCODESEGMENTASSUMEDS:DATACS:CODESTART:MOVAXDATAMOVDSAXMOVAH01HNT21HCMPAL'A'JBERRCMPAL,'Z'JAERRADDAL20HMOVDLALMOVAH02HIN

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論