微機(jī)原理與接口技術(shù)習(xí)題答案3_第1頁
微機(jī)原理與接口技術(shù)習(xí)題答案3_第2頁
微機(jī)原理與接口技術(shù)習(xí)題答案3_第3頁
微機(jī)原理與接口技術(shù)習(xí)題答案3_第4頁
微機(jī)原理與接口技術(shù)習(xí)題答案3_第5頁
免費預(yù)覽已結(jié)束,剩余12頁可下載查看

下載本文檔

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

文檔簡介

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

2、,100/3,10H,65530var2DB BYTE ,word,WORDbuf1DB100 DUP( ?)buf2DB7 DUP( 5 DUP(55H),10 DUP( 240) )var3DBLENGTH buf1pointer DW var1,buf1 (或者 pointer DW OFFSET var1, OFFSET buf1)2. 設(shè)變量 var1 的邏輯地址為0100: 0000,畫出下列語句定義的變量的存儲分配圖:var1 DB 12,12, 20/6 , 4 DUP( 0, 55H)var2 DB Assemble var3 DW AB , cd , Evar4 DW va

3、r2var5 DD var2解:0100;0000Hvarl000 BHvar40CH41HO019H0&H3.指令正i吳判斷,對正F4i 03H 00H ,5H COH 力HOOH 55H OOH 55H.確指Q013H4寫出源和目外工且73H65H6DH62H6CH65H42H41H64H63H mHJ操作叁001BH次的尋址方式,OOH0&H OOHCOH 01H對錯1yarS吳指令指出原因(設(shè)VAR1, VAR2為字變量,L1為標(biāo)號):(1)MOV SI, 100(2)MOV BX VAR1SI(3)MOV AX, BX(4)MOV AL, DX(5)MOV BP, A

4、L(6)MOV VAR1, VAR2MOV CS, AX(8)MOV DS, 0100H(9)MOV 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:

5、0100, AH(26)SBB VAR卜 5,154解:(1)MOV SI,100正確。源:立即數(shù)尋址,目的:寄存器尋址(2)MOV BX,VAR1SI正確。源:寄存器相對尋址,目的:寄存器尋址(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ù)不能為立即

6、數(shù)目的操作數(shù)為段寄存器時,源操作數(shù)不能為立即數(shù)9 MOV BXSI , 1錯誤。指令類型不定。指令類型不定。10MOV AX,V AR1+V AR2錯誤。 MOV 指令中不能完成加法運算11ADD AX,LENGTH V AR1正確。源:立即數(shù)尋址。目的:寄存器尋址12OR BL,TYPE V AR2正確。源:立即數(shù)尋址。目的:寄存器尋址13SUB DI,78H錯誤。指令類型不定14MOVS V AR1,VAR2正確。目的、源均為隱含尋址。操作數(shù)僅指出操作數(shù)類型目的、源均為隱含尋址。操作數(shù)僅指出操作數(shù)類型15PUSH100H錯誤。將常數(shù)壓入堆棧,要通過寄存器來實現(xiàn)將常數(shù)壓入堆棧,要通過寄存器來

7、實現(xiàn)16POPCS錯誤。目的操作數(shù)不能為CS17XCHGAX, ES錯誤。 XCHG 指令的操作數(shù)不能是段寄存器18MOVDS, CS錯誤。 MOV 指令不能從段寄存器到段寄存器19JMPL1+5正確。段內(nèi)直接轉(zhuǎn)移20DIVAX ,10錯誤。指令格式錯誤。21SHLBL,錯誤。移位指令的移位數(shù)為1 或者 CL22MOVAL ,15+23正確。源:立即數(shù)尋址,目的:寄存器。編譯時就處理為3823MULCX正確。源:寄存器尋址,目的:寄存器尋址24XCHGCL,SI 正確。源:寄存器間接尋址,目的:寄存器尋址25ADCCS:0100,AH 正 確。源 :寄存器尋址,目的: 直接尋址(數(shù)據(jù)在代碼段中

8、26SBBVAR1-5,154 正確。源:立即數(shù)尋址,目的:直接尋址。4. 說明下列指令對的區(qū)別:MOV AX,VAR1與 MOV AX, OFFSET VAR1MOV AX,VAR2與 LEA AX , VAR2MOV AL,LENGTHVAR1 與 MOV AL, SIZE VAR1MOV AL,ES: DICMP AL, SI與 CMPSBSHR AL,與 SAR AL,SHR AL,與 ROR AL,ROL BX,與 RCL BX,解: ( 1 MOVAX ,VAR1把變量 VAR1 對應(yīng)地址單元中的一個字送入AXMOVAX , OFFSET VAR1 把 VAR1 的有效地址的偏移地

9、址送入AX2) MOVAX , VAR2把變量 VAR2 對應(yīng)地址單元中的一個字送入AXLEA AX , VAR2 把 VAR2 的有效地址的偏移地址送入AX3) 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é)作比較,改變標(biāo)志寄 存器內(nèi)容。(相當(dāng)于作ES: (DI)與(DS: (SI)內(nèi)容比較)對字符串中的一字節(jié)比較。尋址方式隱含。源串的地址

10、由CMPSBDS:SI 指定,目的串的地址由ES:DI 指定。 (相當(dāng)于作DS:(SI)與ES: (DI)內(nèi)容比較)5) SHR AL , 1AL邏輯右移1 位,最高位移入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)形移

11、位,左移一位,CF 內(nèi)容移入到最低位,最高位移入CF。5. 寫出下列轉(zhuǎn)移指令的尋址方式(設(shè)L1為標(biāo)號,VAR1為字型變量,DVAR1為雙字型變量):1)JMPL1(2)3)JNZL1(4)5)JG L1(6)7)JMPFAR PTR L1(8)解: ( 1 ) JMP L1 段內(nèi)直接尋址( 3) JNZ L1 段內(nèi)直接尋址( 5) JG L1 段內(nèi)直接尋址JMP NEAR L1JMP BXJMP VAR1SIJMP DVAR1( 2) JMP NEAR PTR L1 段內(nèi)直接尋址( 4) JMP BX 段內(nèi)間接尋址( 6) JMP VAR1SI 段內(nèi)間接尋址6. 設(shè)(DS =2000H, (B

12、X) =0100H, (SI) = 0002H, (20100) =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;( 7) MOV AX,1100BXSI解: ( 1 ) 1200H( 2)0100H( 3) 4C2AH ( 4) 3412H( 5) 4C2AH( 6) 7856H ( 7) 65B7

13、H7.執(zhí)行下列指令后,DX寄存器中的內(nèi)容是多少?TABLE DW 25, 36,1,16, 10000, 13PYL DW 7MOV BX, OFFSET TABLEADD BX, PYLMOV DX, BX解: DX = 10FFH8. 如果堆棧的起始地址為由-16 (FFF0H)的高8位和10000 (2710H)的低8位構(gòu)成2200: 0000,棧底為 0100H, (SR) = 00A8H,求1 )棧頂?shù)刂罚? 2) SS的內(nèi)容;(3)再存入數(shù)據(jù) 5678H, 3AF2H后,SP的內(nèi)容。解:棧頂?shù)刂?0A8H , SS = 2200H, 再存入 2 個字后,SP = 00A4H9 .設(shè)

14、已用偽指令 EQU1義了 4個標(biāo)識符:N1 EQU 2100N2 EQU 10N3 EQU 20000N4 EQU 250001)ADD AL,N1 N2;( 2)MOV AX,N3 N4;3)SUB BX,N4 N3;( 4)SUB AH,N4 N3 N1;5)ADD AL,N2;( 6)MOV AH,N2*N21 )錯誤。N1-N2=2090>255( 2)正確卜列指令是否正確?并說明原因。3)正確4)錯誤。N4-N3-N1=2900>2555)正確6)正確10 . 按下列要求寫出指令:(1)將AX寄存器的低4位清零,其余位不變;(2)將BX寄存器的低4位置1,其余位不變;(

15、3)將AL 寄存器的低4 位保持不變,高4 位取反;(4)測試BX中的位1和位2,當(dāng)這兩位同時為 0時將AL置0FFH否則AL清零;(5)測試BX中的位1和位2,當(dāng)這兩位有一位為 0時將AL置0FFH否則AL清零;( 6)將AL 中保存的字母ASCII 碼變換成相應(yīng)的大寫字母的ASCII 碼;( 7)將AL 中保存的字母ASCII 碼變換成相應(yīng)的小寫字母的ASCII 碼;(8)將AX中的各位取反;(9)將DX中的低7位取反,高9位不變;(10)將CX中的低8位與高8位互換。解: ( 1 ) AND AX , 0FFF0H( 2) OR BX, 000FH( 3) XOR AL , 0F0H4)

16、TESTBX, 06H( 5)MOVAX ,BXJZZEROANDAX ,06HMOVAL , 00HXORAX ,06HJMPOVERJZOVERZERO:OVER :MOVAL , 0FFHOVER :MOVAL ,0FFH( 6) AND AL , 5FH或者:CMPAL, 61HJL OVER (無需變換或不是字母)CMPAL, 7AHJG OVER (不是字母)AND AL , 5FH 或 SUB AL , 20HOVER :7) OR AL , 20H或者:CMPAL, 41HJL OVER (不是字母)CMPAL, 5AHJG OVER (無需變換或不是字母)OR AL , 20

17、H 或 ADD AL , 20HOVER :( 8) XOR AX , 0FFFFH 或者NOT AX( 9) XOR DX, 007FH( 10) XCHG CH, CL11. 寫出完成下述功能的程序段:( 1)傳送40H 到 AL 寄存器;( 2)將AL 的內(nèi)容乘以2;(3)傳送16H到AH寄存器;( 4) AL的內(nèi)容加上AH的內(nèi)容。計算最后結(jié)果(AL) =?解: ( 1 ) MOV AL,40H( 5) SHL AL,1( 6) MOV AH,16H( 7) ADD AL , AHAL=96H12. 寫出完成下述功能的程序段:(1)從緩沖區(qū)BUF的0004偏移地址處傳送一個字到 AX寄存

18、器;(2)將AX寄存器的內(nèi)容右移 2位;(3)將AX內(nèi)容與BUF的0006偏移地址處的一個字相乘;(4)相乘結(jié)果存入 BUF的0020H偏移地址處(低位在前)。解: ( 1) LEA SI, BUFMOVAX, SI+4(2) SHRAX,1SHRAX,1(3) MULWORD PTR 6SI(4) MOV20HSI,AXMOV22HSI,DX13.設(shè)(BX> = 11001011B,變量VAR的內(nèi)容為00110010B,求下列指令單獨執(zhí)行后 BX的內(nèi) 容:(1)XOR BX, VAR;(2)AND BX, VAR;(3)OR BX, VAR;(4)XOR BX, 11110000B;(

19、5)AND BX, 00001111B;(6)TEST BX, 1解: ( 1 ) 00F9H2) 0002H3) 00FBH4) 003BH5) 000BH6) 00CBH14.(DX) = 10111011B,(CD =3, (CF)1 ,求下列指令單獨執(zhí)行后求下列指令單獨執(zhí)行后DX的內(nèi)容:解:1)4)7)SHR DX,SHL DX,SAL DH,1;1;1;2)5)8)SAR DX, CL;ROR DX, CL;RCL DX, CL;DX= 0000 0000 1011 1011BCF=13)6)9)CL=3SHL DX,ROL DL,RCR DL,CL;CL;1 ) SHR DX, 1

20、DX 邏輯右移10000 0000 0101 1101B =005DH2) SAR DX, CLDX 算術(shù)右移30000 0000 0001 0111B0017H3) SHL DX, CLDX 邏輯左移30000 0101 1101 1000B05D8H4) SHL DX, 1DX 邏輯左移10000 0001 0111 0110B0176H5) ROR DX, CLDX 循環(huán)右移30110 0000 0001 0111B6017H6) ROL DL , CLDL 循環(huán)左移30000 0000 1101 1101B00DDH7) SAL DH , 1DH 算術(shù)左移10000 0000 1011

21、 1011B = 00BBH8) RCL DX, CLDX 帶進(jìn)位循環(huán)左移30000 0101 1101 1100B = 05DCH9) RCRDL, 1 DL 帶進(jìn)位循環(huán)右移10000 0000 1101 1101B00DDH15. 選擇題(各小題只有一個正確答案)( 1)執(zhí)行下列三條指令后:MOV SP, 1000HPUSH AXCALL BXa.(SP)= 1000H;b.(SP)= 0FFEHc.(SP)= 1004H;d.(SP)= 0FFCH(2)要檢查寄存器 AL中的內(nèi)容是否與 AH相同,應(yīng)使用的指令為:a. AND AL, AHb. OR AL, AHc. XOR AL, AH

22、 d. SBB AL, AH(3)指令JMP NEAR PTR L1與CALL L1 ( L1為標(biāo)號)的區(qū)別在于:a. 尋址方式不同;b. 是否保存IP 內(nèi)容;c. 目地址不同;d. 對標(biāo)志位影響不同。SP=0FFCH解: ( 1) D PUSHU AX 則 AX 入棧,SP=0FFEH; CALL BX 則 IP 入棧, 2) C 異或,若相同,則 AL=0 , ZF = 1。 3) 3) B16.寄存器DX AX組成32位數(shù),DX為高位,編寫程序段實現(xiàn):(1) DX AX右移3位,并將移出的低 3位保存在CL中;(2) DX AX左移3位,并將移出的高 3位保存在CL中;解: ( 1 )移

23、出3 位應(yīng)該按時序移入CL 中。XOR CL,CLMOV BL,3L1:SHR DX, 1RCR AX , 1RCL CL , 1DEC BLJNZ L1( 2)移出3 位應(yīng)該按時序移入CL 中。XOR CL,CLMOV BL,3L1:SHL AX , 1RCR DX, 1RCR CL , 1DEC BLJNZ L117 .編寫程序段實現(xiàn)將 BL中的每一位重復(fù) 4次,成32位的雙字DX: AX,例如當(dāng)BL= 01011101B 時,則得到的(DX) = 0F0FH , (AX) = 0FF0FH。解:算術(shù)右移時,移入的值就是最高位本身,這樣可以使位內(nèi)容重復(fù),利用這一點可以實現(xiàn)題目的要求。XOR

24、DX,DXXORAX,AXMOVCX,4L1: SHRBL,1RCRAX,1SARAX,1SARAX,1SARAX,1LOOPL1MOVCX,4L2: SHRBL,1RCRDX,1SARDX,1SARDX,1SARDX,1LOOPL218 .字變量VAR1中保存有小于38250的16位無符號數(shù),編寫程序段實現(xiàn)VAR1 +150,并進(jìn)行四舍五入操作,將商保存在字節(jié)變量VAR2 中。解:根據(jù)題意,38250+ 150 = 255,因此商不會超過 255,可以用一個字節(jié)表示。a+ b的四舍五入操作可以通過判斷除后余數(shù)實現(xiàn):余數(shù)大于等于除數(shù)的一半, 則商加1;否則不用加1。但這種方法用匯編語言編程實現(xiàn)

25、時比較復(fù)雜,這里介紹另外一種方法:設(shè)一 b的四舍五入后的結(jié)果為 c,用表示取整數(shù)操作,則c a 0.5b這種方法是在除法操作之前,在被除數(shù)上加上除數(shù)的一半,這樣除法操作后得到的值就是考慮了四舍五入的商。VAR1 DW 12345VAR2 DB ?DATAA DB 150MOV AX,V AR1XOR BX,BXMOV BL,DATAASHR BX,1ADD AX,BXDIV DATAAMOV VAR2,AL19.有一組無符號的16位數(shù)據(jù)保存在 BUFFER中,前兩個字節(jié)存放數(shù)據(jù)的個數(shù),編程實現(xiàn)按下式進(jìn)行濾波處理:1y的 3 x(k) x(k 1)鄧 2) k 2y(k) x(k)k 2解:濾波

26、結(jié)果保存在 FILT中。BUFFER DW 0CHDW 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)將字符串2004替

溫馨提示

  • 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

提交評論