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

下載本文檔

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

文檔簡介

第3章8086CPU指令系統(tǒng)1.寫出完成下列要求的變量定義語句:(1)在變量varl中保存6個(gè)字變量:4512H,4512,—1,100/3,10H,65530;(2)在變量var2中保存字符串:’BYTE,,‘word,,‘WORD);(3)在緩沖區(qū)buf1中留出100個(gè)字節(jié)的存儲(chǔ)空間;(4)在緩沖區(qū)buf2中,保存5個(gè)字節(jié)的55H,再保存10個(gè)字節(jié)的240,并將這一過程重復(fù)7次;(5)在變量var3中保存緩沖區(qū)buf1的長度;解:var1 DWvar2 DBbuf1 DBbuf2 DBvar3 DB(6)在變量pointer解:var1 DWvar2 DBbuf1 DBbuf2 DBvar3 DB4512H,4512,-1,100/3,10H,65530‘BYTE',‘word),,WORD)100DUP()7DUP(5DUP(55H),10DUP(240))LENGTHbuf1pointerDWvar1,buf1(或者pointerDWOFFSETvar1,OFFSETbuf1)2.設(shè)變量var1的邏輯地址為0100:0000,畫出下列語句定義的變量的存儲(chǔ)分配圖:var1DB12,—12,20/6,4DUP(0,55H)var2DB ‘Assemble)var3DW ‘AB),‘cd’, ‘E)var4DWvar2var5DDvar2解:.指令正誤判斷,對正確指令寫出源和目的操作數(shù)的尋址方式,對錯(cuò)誤指令指出原因(設(shè)VAR1,VAR2為字變量,L1為標(biāo)號):MOVSI, 100 (2)MOV BX,VAR1[SI]MOVAX, [BX] (4)MOV AL,[DX](5)MOVBP, AL (6)MOV VAR1,VAR2

(7)MOVCS,AX(9)MOV[BX][SI],1(11)ADDAX,LENGTHVAR1(7)MOVCS,AX(9)MOV[BX][SI],1(11)ADDAX,LENGTHVAR1SUB[DI],78HPUSH100H(17)XCHGAX,ESJMPL1+5SHLBL,2MULCXADCCS:[0100],AH解:(1)MOVSI,100MOVBX,VAR1[SI]MOVAX,[BX]MOVAL,[DX](5)MOVBP,AL(6)MOVVAR1,VAR2(7)MOVCS,AX(8)MOVDS,0100H(9)MOV[BX][SI],1(8)MOVDS,0100HMOVAX,VAR1+VAR2(12)ORBL,TYPEVAR2(14)MOVSVAR1,VAR2(16)POPCS(18)MOVDS,CS(20)DIVAX,10MOVAL,15+23XCHGCL,[SI](26)SBBVAR1—5,154源:立即數(shù)尋址,目的:寄存器尋址源:寄存器相對尋址,目的:寄存器尋址MOVAX,VAR1+VAR2(11)ADDAX,LENGTHVAR1ORBL,TYPEVAR2SUB[DI],78H(14)MOVSVAR1,VAR2(15)PUSH 100H(16)POPCSXCHG AX,ESMOV DS,CSJMP L1+5正確。正確。源:寄存器間接尋址,目的:寄存器尋址錯(cuò)誤。寄存器間接尋址時(shí),DX,AX,CX不能作地址寄存器錯(cuò)誤。操作數(shù)類型不一致錯(cuò)誤。兩存儲(chǔ)單元之間不能用MOV指令傳送數(shù)據(jù)錯(cuò)誤。CS不能為目的操作數(shù)錯(cuò)誤。目的操作數(shù)為段寄存器時(shí),源操作數(shù)不能為立即數(shù)錯(cuò)誤。指令類型不定。錯(cuò)誤。MOV指令中不能完成加法運(yùn)算正確。源:立即數(shù)尋址。目的:寄存器尋址正確。源:立即數(shù)尋址。目的:寄存器尋址錯(cuò)誤。指令類型不定正確。目的、源均為隱含尋址。操作數(shù)僅指出操作數(shù)類型錯(cuò)誤。將常數(shù)壓入堆棧,要通過寄存器來實(shí)現(xiàn)錯(cuò)誤。目的操作數(shù)不能為CS錯(cuò)誤。XCHG指令的操作數(shù)不能是段寄存器錯(cuò)誤。MOV指令不能從段寄存器到段寄存器正確。段內(nèi)直接轉(zhuǎn)移

DIV AX,10 錯(cuò)誤。指令格式錯(cuò)誤。SHL BL,2 錯(cuò)誤。移位指令的移位數(shù)為1或者CLMOVAL,15+23正確。源:立即數(shù)尋址,目的:寄存器。編譯時(shí)就處理為38(23)MULCX正確。源:寄存器尋址,目的:寄存器尋址(24)XCHGCL,[SI]正確。源:寄存器間接尋址,目的:寄存器尋址(25)ADCCS:[0100],AH正確。源:寄存器尋址,目的:直接尋址(數(shù)據(jù)在代碼段中)(26)SBBVAR1-5,154正確。源:立即數(shù)尋址,目的:直接尋址。.說明下列指令對的區(qū)別:(1)MOVAX,VAR1MOVAX,OFFSETVAR1(2)MOVAX,VAR2LEAAX,VAR2(3)MOVAL,LENGTHVAR1與MOVAL,SIZEVAR1(4)MOVAL,ES:[DI]CMPAL,[SI]與CMPSB(5)SHRAL,SARAL,1(6)SHRAL,RORAL,1(7)ROLBX,RCLBX,1解:(1)MOVAX,VAR1把變量VAR1對應(yīng)地址單元中的一個(gè)字送入AXMOVAX,OFFSETVAR1把VAR1(1)MOVAX,VAR1MOVAX,OFFSETVAR1(2)MOVAX,VAR2LEAAX,VAR2(3)MOVAL,LENGTHVAR1與MOVAL,SIZEVAR1(4)MOVAL,ES:[DI]CMPAL,[SI]與CMPSB(5)SHRAL,SARAL,1(6)SHRAL,RORAL,1(7)ROLBX,RCLBX,1解:(1)MOVAX,VAR1把變量VAR1對應(yīng)地址單元中的一個(gè)字送入AXMOVAX,OFFSETVAR1把VAR1的有效地址的偏移地址送入AX(2)MOVAX,VAR2把變量VAR2對應(yīng)地址單元中的一個(gè)字送入AXLEAAX,VAR2把VAR2的有效地址的偏移地址送入AX(3)MOVAL,LENGTHVAR1(3)MOVAL,LENGTHVAR1把變量VAR1的長度送入41MOVAL,SIZEVAR1把變量MOVAL,SIZEVAR1把變量VAR1的大小送入ALMOVAL,ES:[DI]CMPAL,[SI] 把以ES為段地址,DI為偏移地址的一個(gè)字節(jié)送入41,并與以SI內(nèi)容為偏移地址的一個(gè)字節(jié)作比較,改變標(biāo)志寄存器內(nèi)容。(相當(dāng)于作ES:(DI)與(DS:(SI)內(nèi)容比較)CMPSB 對字符串中的一字節(jié)比較。尋址方式隱含。源串的地址由DS:SI指定,目的串的地址由ES:DI指定。(相當(dāng)于作DS:(SI)與ES:(DI)內(nèi)容比較)SHRAL,1AL邏輯右移1位,最高位移入0,最低位移入CF。SARAL,1 AL算術(shù)右移1位,以最高位內(nèi)容移入,最低位移入CF,其余各位

右移一位。SHRAL,1AL邏輯右移1位,最高位移入0,最低位移入?1^RORAL,1 AL的各位構(gòu)成環(huán)形移位,右移一位,最低位內(nèi)容同時(shí)移入到?1^和最高位。(7)ROLBX,1 BX各位構(gòu)成環(huán)形移位,左移一位,最高位內(nèi)容同時(shí)移入到?1^和最低位。RCLBX,1BX和CF構(gòu)成環(huán)形移位,左移一位,CF內(nèi)容移入到最低位,最高位移入CF。5.寫出下列轉(zhuǎn)移指令的尋址方式(設(shè)L1為標(biāo)號,VAR1為字型變量,DVAR1為雙字型變量):(1) JMP L1 (2) (1) JMP L1 (2) JMP(3) JNZ L1 (4) JMP(5) JG L1 (6) JMP(7) JMP FARPTRL1 (8) JMP解:(1)JMPL1段內(nèi)直接尋址(3)JNZL1段內(nèi)直接尋址(5)JGL1段內(nèi)直接尋址(7)JMPFARPTRL1段間直接尋址6.設(shè)(DS)=2000H,(BX)=0100H,(SI)NEARL1BXVAR1[SI]DVAR1(2)JMPNEARPTRL1段內(nèi)直接尋址(4)JMPBX段內(nèi)間接尋址(6)JMPVAR1[SI]段內(nèi)間接尋址(8)JMPDVAR1段間間接尋址=0002H,(20100)=3412H,(20102)=7856H,(21200)=4C2AH,(21202)=65B7H,求下列指令執(zhí)行后AX寄存器的內(nèi)容:MOVAX,1200H; (2)MOVAX,BX;(3)MOVAX,[1200H];MOVAX,[BX]; (5)MOVAX,1100[BX];(6)MOVAX,[BX][SI];MOVAX,1100[BX][SI]解:(1)1200H (2)0100H (3)4C2AH(4)3412H (5)4C2AH(6)7856H (7)65B7H.執(zhí)行下列指令后,DX寄存器中的內(nèi)容是多少TABLE DW25,36,—1,一16,10000,13PYL DW7MOVBX,OFFSETTABLEADDBX,PYL

MOVDX,[BX]解:DX=10FFH 由-16(FFF0H)的高8位和10000(2710H)的低8位構(gòu)成.如果堆棧的起始地址為2200:0000,棧底為0100H,(SP)=00A8H,求(1)棧頂?shù)刂?(2)SS的內(nèi)容;(3)再存入數(shù)據(jù)5678H,3AF2H后,SP的內(nèi)容。解:棧頂?shù)刂?0A8H,SS=2200H,再存入2個(gè)字后,SP=00A4H9.設(shè)已用偽指令EQU定義了4個(gè)標(biāo)識符:N1EQU2100N2EQU10N3EQU20000N4EQU25000下列指令是否正確并說明原因。(1)下列指令是否正確并說明原因。(1)ADDAL,N1-N2;(3)SUBBX,N4-N3;(5)ADDAL,N2;解:(1)錯(cuò)誤。N1-N2=2090>255(4)錯(cuò)誤。N4-N3-N1=2900>25510.按下列要求寫出指令:(2)MOVAX,N3+N4;(4)SUBAH,N4-N3-N1;(6)MOVAH,N2*N2(2)正確 (3)正確(5)正確 (6)正確(1)將AX寄存器的低4位清零,其余位不變;(2)將BX寄存器的低4位置1,其余位不變;(3)將AL寄存器的低4位保持不變,高4位取反;(4)測試BX中的位1和位2,當(dāng)這兩位同時(shí)為0時(shí)將AL置0FFH,否則AL清零;(5)測試BX中的位1和位2,當(dāng)這兩位有一位為0時(shí)將AL置0FFH,否則AL清零;(6)將AL中保存的字母4561碼變換成相應(yīng)的大寫字母的4561碼;(7)將AL中保存的字母4561碼變換成相應(yīng)的小寫字母的4561碼;(8)將AX中的各位取反;(9)將DX中的低7位取反,高9位不變;(10)將CX中的低8位與高8位互換。解:(1)ANDAX,0FFF0H(2)ORBX,000FH(3)XORAL,0F0H(4)TESTBX,06H(5) MOVAX,BXJZZEROANDAX,06HMOVAL,00HXORAX,06HJMPOVERJZOVERZERO:MOVAL,0FFHMOVAL,0FFHOVER: OVER:(6)ANDAL,5FH或者:CMPAL,61HJLOVER (無需變換或不是字母)CMPAL,7AHJGOVER (不是字母)ANDAL,5FH或SUBAL,20HOVER:(7)ORAL,20H或者:CMPAL,41HJLOVER(不是字母)CMPAL,5AHJGOVER(無需變換或不是字母)ORAL,20H或ADD AL,20HOVER:(8)XORAX,0FFFFH或者NOTAXXORDX,007FH(10)XCHGCH,CL.寫出完成下述功能的程序段:(1)傳送40H到AL寄存器;(2)將AL的內(nèi)容乘以2;(3)傳送16H到AH寄存器;(4)AL的內(nèi)容加上AH的內(nèi)容。計(jì)算最后結(jié)果(AL)=解:(1)MOVAL,40HSHLAL,1MOVAH,16HADDAL,AHAL=96H.寫出完成下述功能的程序段:(1)從緩沖區(qū)BUF的0004偏移地址處傳送一個(gè)字到AX寄存器;(2)將AX寄存器的內(nèi)容右移2位;(3)將AX內(nèi)容與BUF的0006偏移地址處的一個(gè)字相乘;(4)相乘結(jié)果存入BUF的0020H偏移地址處(低位在前)。解:(1)LEASI,BUFMOVAX,[SI+4]SHRAX,1SHRAX,1MULWORDPTR6[SI]MOV20H[SI],AXMOV22H[SI],DX.設(shè)(BX)=B,變量VAR的內(nèi)容為00110010B,求下列指令單獨(dú)執(zhí)行后BX的內(nèi)容:(1)XORBX,VAR;(2)ANDBX,VAR;(3)ORBX,VAR;(4)XORBX,B;(5)ANDBX,00001111B;(6)TESTBX,1解:(1)00F9H(2)0002H(3)00FBH

(4)003BH(5)000BH(6)00CBH.設(shè)(DX)=B,(CL)=3,(CF)=1,求下列指令單獨(dú)執(zhí)行后DX的內(nèi)容:TOC\o"1-5"\h\zSHR DX, 1; (2) SAR DX, CL; (3) SHL DX, CL;SHL DX, 1; (5) ROR DX, CL; (6) ROL DL, CL;SAL DH, 1; (8) RCL DX, CL; (9) RCR DL, 1解:DX=0000000010111011BCF=1CL=3(2)SARDX,CLDX算術(shù)右移30000000000010111B=0017H(3)SHLDX,CLDX邏輯左移30000010111011000B=05D8H(4)SHLDX,1DX邏輯左移10000000101110110B=0176H(5)RORDX,CLDX循環(huán)右移30110000000010111B=6017H(6)ROLDL,CLDL循環(huán)左移30000000011011101B=00DDH(7)SALDH,1DH算術(shù)左移10000000010111011B=00BBH(8)RCLDX,CLDX帶進(jìn)位循環(huán)左移30000010111011100B =(1)SHRDX,1DX邏輯右移1 0000000001011101B = 005DH05DCH(9)RCRDL,1DL帶進(jìn)位循環(huán)右移1 0000000011011101B =00DDH.選擇題(各小題只有一個(gè)正確答案)(1)執(zhí)行下列三條指令后:MOVSP,1000HPUSHAXCALLBXa.(SP)=1000H;b.(SP)=0FFEH;c.(SP)=1004H;d.(SP)=0FFCH;(2)要檢查寄存器AL中的內(nèi)容是否與AH相同,應(yīng)使用的指令為:a.ANDAL,AHb.ORAL,AHc.XORAL,AHd.SBBAL,AH(3)指令JMPNEARPTRL1與CALLL1(L1為標(biāo)號)的區(qū)別在于:c.目的地址不同;d.對標(biāo)志位的影響不同。a.尋址方式不同;a.尋址方式不同;b.是否保存IP的內(nèi)容;解:(1)DPUSHUAX則AX入棧,SP=0FFEH;CALLBX則下入棧,SP=0FFCHC異或,若相同,則AL=0,ZF=1。B16.寄存器DX:AX組成32位數(shù),DX為高位,編寫程序段實(shí)現(xiàn):DX:AX右移3位,并將移出的低3位保存在CL中;DX:AX左移3位,并將移出的高3位保存在CL中;解:(1)移出的3位應(yīng)該按時(shí)序移入部中。XORCL,CLMOVBL,3L1:SHRDX,1RCRAX,1RCLCL,1DECBLJNZL1(2)移出的3位應(yīng)該按時(shí)序移入部中。XORCL,CLMOVBL,3L1:SHLAX,1RCRDX,1RCRCL,1DECBLJNZL1.編寫程序段實(shí)現(xiàn)將BL中的每一位重復(fù)4次,構(gòu)成32位的雙字DX:AX,例如當(dāng)BL=01011101B時(shí),則得到的(DX)=0F0FH,(AX)=0FF0FH。解:算術(shù)右移時(shí),移入的值就是最高位本身,這樣可以使位內(nèi)容重復(fù),利用這一點(diǎn)可以實(shí)現(xiàn)題目的要求。XORDX,DXXORAX,AXMOVCX,4TOC\o"1-5"\h\zL1:SHR BL,1RCRAX,1SAR AX,1SAR AX,1SAR AX,1LOOP L1MOVCX,4L2: SHRBL,1RCRDX,1SAR DX,1SAR DX,1SAR DX,1LOOP L2.字變量VAR1中保存有小于38250的16位無符號數(shù),編寫程序段實(shí)現(xiàn)VAR1?150,并進(jìn)行四舍五人操作,將商保存在字節(jié)變量VAR2中。解:根據(jù)題意,38250?150=255,因此商不會(huì)超過255,可以用一個(gè)字節(jié)表示。a-b的四舍五人操作可以通過判斷除后余數(shù)實(shí)現(xiàn):余數(shù)大于等于除數(shù)的一半,則商加1;否則不用加1。但這種方法用匯編語言編程實(shí)現(xiàn)時(shí)比較復(fù)雜,這里介紹另外一種方法:設(shè)a?b的四舍五入后的結(jié)果為c,用『』表示取整數(shù)操作,則a+0.5b這種方法是在除法操作之前,在被除數(shù)上加上除數(shù)的一半,這樣除法操作后得到的值就是考慮了四舍五入的商。VAR1DW12345VAR2DBDATAADB150MOVAX,VAR1XORBX,BXMOVBL,DATAASHRBX,1ADDAX,BXDIVDATAAMOVVAR2,AL.有一組無符號的16位數(shù)據(jù)保存在BUFFER中,前兩個(gè)字節(jié)存放數(shù)據(jù)的個(gè)數(shù),編程實(shí)現(xiàn)按下式進(jìn)行濾波處理:y(k)=3G(k)+x(k一1)+x(k-2)) k>2y(k)=x(k) k<2解:濾波結(jié)果保存在FILT中。BUFFERDW0CHDW33H,18H,1BH,06H,33H,08HDW3H,6H,0FH,51H,05H,0CHFILTDW100HDUP()LEASI,BUFFERLEADI,FILTMOVCX,[SI]MOV[DI],CXADDSI,2ADDDI,2XORDX,DXMOVAX,[SI]MOV[DI],AXMOVBX,2[SI]MOV2[DI],BXADDSI,4ADDDI,4DECCXDECCXADDAX,BXADCDX,0MOVBX,3L1:ADDAX,[SI]ADCDX,0PUSHDXPUSHAXDIVBXMOV[DI],AXPOPAXPOPDXSUBAX,[SI-4]SUBBDX,0ADDDI,2ADDSI,2LOOPL1.在由字符串構(gòu)成的緩沖區(qū)BUFFER中,前2個(gè)字節(jié)存放字符個(gè)數(shù),后續(xù)每個(gè)字節(jié)存放一個(gè)字符的ASCII碼。編寫程序?qū)崿F(xiàn)將字符串‘2004’替換成‘2006’。解:在

溫馨提示

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

最新文檔

評論

0/150

提交評論