微機原理與接口技術(shù)習題答案3講解_第1頁
微機原理與接口技術(shù)習題答案3講解_第2頁
微機原理與接口技術(shù)習題答案3講解_第3頁
微機原理與接口技術(shù)習題答案3講解_第4頁
微機原理與接口技術(shù)習題答案3講解_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第 3 章 8086CPU 指令系統(tǒng)1. 寫出完成下列要求的變量定義語句:1)在變量 var1 中保存 6個字變量: 4512H,4512, 1,100/3 ,10H,65530;2)在變量 var2 中保存字符串: BYTE, word, WORD ;3)在緩沖區(qū) buf1 中留出 100 個字節(jié)的存儲空間;(4)在緩沖區(qū)buf2中,保存5個字節(jié)的55H,再保存10個字節(jié)的240,并將這一過程重復 7 次;5)在變量 var3 中保存緩沖區(qū) buf1 的長度;6)在變量 pointer 中保存變量 var1 和緩沖區(qū) buf1 的偏移地址。解:var1DW4512H,4512,-1,100/

2、3,10H,65530var2DBBYTE ,word ,WORD buf1DB100 DUP ( ?)buf2DB7 DUP(5 DUP(55H) ,10 DUP(240)var3DBLENGTH buf1pointerDWvar1,buf1(或者 pointer DW OFFSET var1, OFFSET buf1)2.設變量var1的邏輯地址為 0100:0000,畫出下列語句定義的變量的存儲分配圖:var1 DB12,12, 20/6 , 4 DUP( 0 , 55H)var2 DBAssemblevar3 DWAB, cd , Evar4 DW var2var5 DD var2解:

3、aiaoiaaaoKOCH03Ho5hHE亟55H35h35h55H41H73H73H65H62H6CH殆H42H41H64H詼45HDDHvsrl OOOBHvsr20D13Hvsr30019H001BHvir4var53.指令正誤判斷,對正確指令寫出源和目的操作數(shù)的尋址方式,對錯誤指令指出原因(設VAR1, VAR2為字變量 丄1為標號):(1) MOV SI, 100(2)MOV BX VAR1SI(3) MOV AX, BX(4)MOV AL, DX(5) MOV BP, AL(6)MOV VAR1, VAR2(7) MOV CS, AX(8)MOV DS, 0100H(9) MOV

4、BXSI, 1(10)MOV AX, VAR1+VAR2(11) ADD AX, LENGTH VAR1(12)OR BL, TYPE VAR2(13) SUB DI, 78H(14)MOVS VAR1, VAR2(15) PUSH 100H(16)POP CS(17) XCHG AX, ES(18)MOV DS, CS(19) JMP L1+5(20)DIV AX, 10(21) SHL BL, 2(22)MOV AL, 15+23(23) MUL CX(24)XCHG CL, SI(25) ADC CS:0100, AH(26)SBB VARJ 5,154解:(1) MOV SI,100正

5、確。源:立即數(shù)尋址,目的:寄存器尋址(2) MOV BX,V AR1SI正確。源:寄存器相對尋址,目的:寄存器尋址(3) MOV AX,BX正確。源:寄存器間接尋址,目的:寄存器尋址(4) MOV AL,DX錯誤。寄存器間接尋址時,DX,AX, CX不能作地址寄存器(5) MOV BP,AL錯誤。操作數(shù)類型不一致(6)MOV VAR1,VAR2錯誤。兩存儲單兀之間不能用MOV指令傳送數(shù)據(jù)7)MOV CS,AX錯誤。 CS 不能為目的操作數(shù)8)MOV DS,0100H錯誤。目的操作數(shù)為段寄存器時,源操作數(shù)不能為立即數(shù)9)MOV BXSI ,1錯誤。指令類型不定。10)MOV AX,V AR1+V

6、 AR2錯誤。 MOV 指令中不能完成加法運算11)ADD AX,LENGTH V AR1正確。源:立即數(shù)尋址。目的:寄存器尋址12)OR BL,TYPE V AR2正確。源:立即數(shù)尋址。目的:寄存器尋址錯誤。指令類型不定14 )MOVS V AR1,VAR2正確。15 )PUSH100H錯誤。16 )POPCS/17 )XCHGAX, ES錯誤。18 )MOVDS, CS錯誤。19 )JMPL1+5正確。13)SUB DI,78H20)DIVAX ,10目的、源均為隱含尋址。操作數(shù)僅指出操作數(shù)類型將常數(shù)壓入堆棧,要通過寄存器來實現(xiàn)目的操作數(shù)不能為 CSXCHG 指令的操作數(shù)不能是段寄存器MO

7、V 指令不能從段寄存器到段寄存器段內(nèi)直接轉(zhuǎn)移錯誤。指令格式錯誤。21)SHLBL,錯誤。移位指令的移位數(shù)為 1 或者 CL22)MOVAL,15+23正確。源 :立即數(shù)尋址,目的 :寄存器。編譯時就處理為3823)MULCX正確。源:寄存器尋址,目的:寄存器尋址24)XCHGCL,SI 正確。源:寄存器間接尋址,目的:寄存器尋址25)ADCCS:0100,AH 正確。源:寄存器尋址 ,目的: 直接尋址(數(shù)據(jù)在代碼段中)26)SBBVAR1-5,154正確。源:立即數(shù)尋址,目的:直接尋址。4. 說明下列指令對的區(qū)別:1)MOV AX,VAR1與MOV AX,OFFSET VAR12)MOV AX

8、,VAR2與LEA AX, VAR23)MOV AL,LENGTHVAR1與 MOV AL, SIZE VAR14)MOV AL,ES: DICMP AL, SI與 CMPSB5)SHR AL,1與SAR AL ,16)SHR AL,1與ROR AL,17)ROL BX,1與RCL BX,11)MOVAX , VAR1把變量 VAR1 對應地址單元中的一個字送入解:(AXMOVAX , OFFSET VAR1 把VAR1的有效地址的偏移地址送入AX2)MOVAX , VAR2把變量 VAR2 對應地址單元中的一個字送入 AXLEA AX , VAR2 把 VAR2 的有效地址的偏移地址送入 A

9、X3)MOV AL , LENGTH V AR1 把變量 VAR1 的長度送入 ALMOV AL , SIZE VAR1 把變量 VAR1 的大小送入 AL4)MOV AL ,ES: DICMP AL ,SI把以 ES 為段地址, DI 為偏移地址的一個字節(jié)送入 AL ,并與以 SI 內(nèi)容為偏移地址的一個字節(jié)作比較,改變標志寄存器內(nèi)容。(相當于作ES: (。1)與(DS: (SI)內(nèi)容比較)CMPSB對字符串中的一字節(jié)比較。尋址方式隱含。源串的地址由DS:SI 指定,目的串的地址由 ES:DI 指定。(相當于作DS:(SI)與ES: ( DI)內(nèi)容比較)5) SHR AL ,1AL邏輯右移1

10、位,最高位移入 0, 最低位移入 CF 。SAR AL , 1AL算術(shù)右移1 位,以最高位內(nèi)容移入,最低位移入 CF,其余各位右移一位。6) SHR AL ,1AL 邏輯右移1 位,最高位移入 0, 最低位移入 CF 。ROR AL , 1AL 的各位構(gòu)成環(huán)形移位,右移一位,最低位內(nèi)容同時移入到CF 和最高位。7) ROL BX , 1BX 各位構(gòu)成環(huán)形移位,左移一位,最高位內(nèi)容同時移入到CF 和最低位。RCL BX ,1BX和CF構(gòu)成環(huán)形移位,左移一位,CF內(nèi)容移入到最低位,最高位移入 CF。5. 寫出下列轉(zhuǎn)移指令的尋址方式 (設VAR1為字型變量,DVAR1為雙字型變量):1)JMP L1

11、( 2 )JMP NEAR L13)JNZ L1( 4 )JMPBX5)JG L1( 6 )JMPVAR1SI7)JMP FAR PTR L1( 8 )JMPDVAR1L1 為標號,解:( 1 )JMP L1段內(nèi)直接尋址( 2)JMP NEAR PTR L1 段內(nèi)直接尋址( 3 )JNZL1 段內(nèi)直接尋址( 4)JMP BX段內(nèi)間接尋址( 5 )JG L1段內(nèi)直接尋址( 6)JMP VAR1SI段內(nèi)間接尋址7) JMP FAR PTR L1 段間直接尋址8) JMP DVAR1 段間間接尋址6. 設(DS = 2000H, (BX) = 0100H, ( SI) = 0002H, (20100

12、) = 3412H, (20102) = 7856H,(21200 )= 4C2AH ( 21202)= 65B7H,求下列指令執(zhí)行后 AX寄存器的內(nèi)容:1 ) MOV AX, 1200H;2)MOV AX, BX;3) MOV AX, 1200H;4) MOV AX, BX;5)MOV AX,1100BX; (6) MOV AX, BXSI;解:( 1 )錯誤。 N1-N2=20902552)正確3)正確7) MOV AX,1100BXSI解:1 ) 1200H( 2)0100H3) 4C2AH( 4) 3412H( 5) 4C2AH7.6) 7856H( 7)執(zhí)行下列指令后,TABLEDW

13、65B7HDX寄存器中的內(nèi)容是多少?25,36, 1,16,10000,13PYLDW解:8.MOVADDMOVBX,BX,DX,DX = 10FFHOFFSET TABLEPYLBX由 -16如果堆棧的起始地址為1)棧頂?shù)刂罚?FFF0H )的高8位和10000 (2710H)的低8位構(gòu)成2200: 0000,棧底為 0100H, ( SP = 00A8H,求SS的內(nèi)容;3)再存入數(shù)據(jù)5678H, 3AF2H后,SP 的內(nèi)容。解:棧頂?shù)刂?0A8H , SS = 2200H, 再存入 2 個字后, SP = 00A4H9. 設已用偽指令 EQU定義了 4個標識符:N1EQU2100N2EQU

14、10N3EQU20000N4EQU25000列指令是否正確?并說明原因。1 ) ADD AL, N1 N2;2)MOV AX,N3N4;3) SUB BX, N4 N3;4)SUB AH,N4N3 N1;5) ADD AL, N2;6)MOV AH,N2*N210. 按下列要求寫出指令:( 1)將 AX 寄存器的低 4 位清零,其余位不變;(2)將BX寄存器的低4位置1,其余位不變;(3)將AL寄存器的低4位保持不變,高4位取反;(4) 測試BX中的位1和位2,當這兩位同時為 0時將AL置OFFH否則AL清零;(5) 測試BX中的位1和位2,當這兩位有一位為 0時將AL置0FFH否則AL清零;

15、(6) 將AL中保存的字母 ASCII碼變換成相應的大寫字母的ASCII碼;(7) 將AL中保存的字母 ASCII碼變換成相應的小寫字母的ASCII碼;(8)將AX中的各位取反;(9)將DX中的低7位取反,高9位不變;(10)將CX中的低8位與高8位互換。解:( 1 ) AND AX , 0FFF0H( 2) OR BX, 000FH( 3) XOR AL , 0F0H4)TESTBX, 06H( 5)MOVAX ,BXJZZEROANDAX ,06HMOVAL , 00HXORAX ,06HJMPOVERJZOVERZERO:MOVAL , 0FFHMOVAL ,0FFHOVER :OVER

16、 :( 6) AND AL , 5FH或者:CMPAL , 61HJLOVER(無需變換或不是字母)CMPAL , 7AHJGOVER(不是字母)AND AL, 5FH或 SUB AL , 20HOVER:7)OR AL , 20H或者:CMPAL,41HJLOVER(不是字母)CMPAL , 5AHJGOVER(無需變換或不是字母)OR AL, 20H或ADD AL ,20HOVER:( 8) XOR AX , 0FFFFH或者 NOT AX(9)XOR DX ,007FH( 10)XCHG CH, CL11. 寫出完成下述功能的程序段:(1)傳送40H到AL寄存器;( 2)將 AL 的內(nèi)容

17、乘以 2;(3)傳送16H到AH寄存器;(4)AL的內(nèi)容加上AH的內(nèi)容。計算最后結(jié)果(AL)=?解:( 1 )MOVAL,40H( 2)SHLAL,1( 3)MOVAH,16H( 4)ADDAL , AHAL=96H12. 寫出完成下述功能的程序段:(1) 從緩沖區(qū)BUF的0004偏移地址處傳送一個字到AX寄存器;(2)將AX寄存器的內(nèi)容右移 2位;(3)將AX內(nèi)容與BUF的0006偏移地址處的一個字相乘;(4)相乘結(jié)果存入 BUF的0020H偏移地址處(低位在前)。解: (1) LEA SI, BUFMOV AX, SI+4(2) SHRAX,1SHRAX,1(3) MULWORD PTR

18、6SI(4) MOV20HSI,AXMOV22HSI,DX13. 設(BX= 11001011B,變量VAR的內(nèi)容為00110010B,求下列指令單獨執(zhí)行后BX的內(nèi)容:2) 0002H3) 00FBH4) 003BH5) 000BH6) 00CBH設(DX) =14.1)10111011B,(CL)= 3, (CF求下列指令單獨執(zhí)行后DX的內(nèi)容:4)7)SHR DX,SHL DX,SAL DH,1;1;1;2)5)8)SAR DX, CL;ROR DX, CL;RCL DX, CL;3)6)9)SHL DX,ROL DL,RCR DL,CL;CL;( 1)XOR BX,VAR;( 2)AND

19、BX,VAR;( 3)OR BX,VAR;( 4)XOR BX,11110000B;( 5)AND BX,00001111B;( 6)TEST BX,1解:( 1 )00F9H1)SHRDX,1DX 邏輯右移10000 0000 0101 1101B=005DH2)SAR DX,CLDX 算術(shù)右移 30000 0000 0001 0111B =0017H3)SHL DX ,CLDX 邏輯左移 30000 0101 1101 1000B =05D8H4)SHL DX ,1DX 邏輯左移 10000 0001 0111 0110B =0176H5)RORDX,CLDX 循環(huán)右移30110 0000

20、 0001 0111B= 6017H6)ROLDL,CLDL 循環(huán)左移30000 0000 1101 1101B= 00DDH7)SAL DH ,1DH 算術(shù)左移 10000 0000 1011 1011B =00BBHCF=1CL=3DX= 0000 0000 1011 1011B帶進位循環(huán)左移 38)RCL DXCLDX0000 0101 1101 1100B解:05DCH9) RCRDL, 1 DL 帶進位循環(huán)右移 10000 0000 1101 1101B00DDH15. 選擇題(各小題只有一個正確答案)( 1)執(zhí)行下列三條指令后:MOV SP, 1000HPUSH AXCALL BX

21、a.(SP)= 1000H;b. (SP)= OFFEHc.(SP)= 1OO4H;d. (SP)= 0FFCH( 2)要檢查寄存器 AL 中的內(nèi)容是否與 AH 相同,應使用的指令為:a. AND AL, AHb. OR AL, AHc. XOR AL, AH d. SBB AL, AH(3)指令JMP NEAR PTR L1與CALL L1 ( L1為標號)的區(qū)別在于:a. 尋址方式不同;b. 是否保存 IP 的內(nèi)容;c. 目的地址不同;d. 對標志位的影響不同。SP=0FFCH解:(1) D PUSHU AX 則 AX 入棧,SP=0FFEH ; CALL BX 貝U IP 入棧,(2)

22、C 異或,若相同,則 AL=0 , ZF = 1。( 3) B16. 寄存器DX AX組成32位數(shù),DX為高位,編寫程序段實現(xiàn):(1) DX AX右移3位,并將移出的低 3位保存在CL中;(2) DX AX左移3位,并將移出的高 3位保存在CL中;解:(1)移出的3位應該按時序移入 CL中。XOR CL,CLMOV BL,31:SHRDX , 1RCRAX , 1RCLCL , 1DECBLJNZL12)移出的3 位應該按時序移入 CL 中。XOR CL,CLMOV BL,3L1: SHL AX , 1RCR DX , 1RCR CL ,1DEC BLJNZ L117. 編寫程序段實現(xiàn)將 BL

23、 中的每一位重復 4 次,構(gòu)成 32 位的雙字 DX:AX ,例如當 BL=01011101B 時,則得到的(DX )= OFOFH , (AX )= OFFOFH。解:算術(shù)右移時,移入的值就是最高位本身, 這樣可以使位內(nèi)容重復, 利用這一點可以實現(xiàn)題目的要求。XORDX,DXXORAX,AXMOVCX,4L1:SHRBL,1RCRAX,1SARAX,1SARAX,1SARAX,1LOOPL1MOVCX,4L2:SHRBL,1RCRDX,1SARDX,1SARDX,1SARDX,1LOOPL218. 字變量VAR1中保存有小于38250的16位無符號數(shù),編寫程序段實現(xiàn)VAR1十150,并進行四

24、舍五入操作,將商保存在字節(jié)變量 VAR2 中。解:根據(jù)題意,38250 - 150 = 255,因此商不會超過 255,可以用一個字節(jié)表示。a+ b的四舍五入操作可以通過判斷除后余數(shù)實現(xiàn):余數(shù)大于等于除數(shù)的一半, 則商加1;否則不用加1。但這種方法用匯編語言編程實現(xiàn)時比較復雜,這里介紹另外一種方法:設十b的四舍五入后的結(jié)果為c,用表示取整數(shù)操作,則這樣除法操作后得到的值就是考這種方法是在除法操作之前, 在被除數(shù)上加上除數(shù)的一半, 慮了四舍五入的商。VAR1 DW 12345VAR2 DB ?DATAADB 150MOVAX,V AR1XORBX,BXMOVBL,DATAASHRBX,1ADDA

25、X,BXDIVDATAAMOVVAR2,AL19.有一組無符號的16位數(shù)據(jù)保存在 BUFFER按下式進行濾波處理:中,前兩個字節(jié)存放數(shù)據(jù)的個數(shù),編程實現(xiàn)1 t ,y(k3x(k) x(kx(k_2)k_2y(k)=x(k)k : 2解:濾波結(jié)果保存在 FILT中。BUFFER DW OCHDW 33H, 18H, 1BH, 06H, 33H, 08HDW 3H, 6H, 0FH, 51H, 05H, 0CHFILT DW 100H DUP ( ?)LEA SI,BUFFERLEA DI,FILTMOV CX,SIMOV DI,CXADD SI,2ADD DI,2XOR DX,DXMOV AX,SIMOV DI,AXMOV BX,2SIMOV 2DI,BXADD SI,4ADD DI,4DEC CXDEC CXADD AX,BXADC DX,0L1:MOV BX,3ADD AX,SIADC DX,0PUSH DXPUSH AXDIV BXMOV DI,AXPOP AXPOP DXSUB AX, SI-4SUBB DX,0ADD DI,2ADD SI,2LOOP L120. 在由字符串構(gòu)成的緩沖區(qū) BUFFER 中,前 2 個字節(jié)存放字符個數(shù),后續(xù)每個字節(jié)存放一個字符的 ASCII 碼。編寫程序?qū)崿F(xiàn)將字符串 2

溫馨提示

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

評論

0/150

提交評論