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

下載本文檔

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

文檔簡介

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

2、f1DB100 DUPbuf2DB7 DUP5 DUP55H,10 DUP240var3DBLENGTH buf1pointerDW var1,buf1 或者pointerDW OFFSET var1,OFFSET buf1設(shè)變量var1的邏輯地址為0100:0000,畫出以下語句定義的變量的存儲分配圖: var1 DB 12,12,20/6,4 DUP0,55Hvar2 DB Assemble var3 DW AB, cd, E var4 DW var2 var5 DD var2解:指令正誤判斷,對正確指令寫出源和目的操作數(shù)的尋址方式,對錯(cuò)誤指令指出原因設(shè)VAR1, VAR2為字變量, L1

3、為標(biāo)號:1MOV SI,1002MOV B*,VAR1SI 3MOV A*, B*4MOV AL, D* 5MOV BP, AL6MOV VAR1, VAR2 7MOV CS, A*8MOV DS, 0100H 9MOV B*SI, 110MOV A*, VAR1+VAR211ADD A*, LENGTH VAR112OR BL, TYPE VAR213SUB DI, 78H14MOVS VAR1, VAR2 15PUSH 100H16POP CS 17*CHG A*, ES18MOV DS, CS 19JMP L1+520DIV A*, 10 21SHL BL, 222MOV AL, 15+

4、23 23MUL C*24*CHG CL, SI 25ADC CS:0100, AH26SBB VAR15,154解:1MOV SI,100正確。源:立即數(shù)尋址, 目的:存放器尋址2MOV B*,VAR1SI 正確。源:存放器相對尋址, 目的:存放器尋址3MOV A*,B*正確。源:存放器間接尋址,目的:存放器尋址4MOV AL,D*錯(cuò)誤。存放器間接尋址時(shí),D*, A*, C*不能作地址存放器5MOV BP,AL錯(cuò)誤。操作數(shù)類型不一致6MOV VAR1,VAR2錯(cuò)誤。兩存儲單元之間不能用MOV指令傳送數(shù)據(jù)7MOV CS,A*錯(cuò)誤。CS不能為目的操作數(shù)8MOV DS,0100H錯(cuò)誤。目的操作數(shù)為

5、段存放器時(shí),源操作數(shù)不能為立即數(shù)9MOV B*SI,1錯(cuò)誤。指令類型不定。10MOV A*,VAR1+VAR2 錯(cuò)誤。MOV指令中不能完成加法運(yùn)算11ADD A*,LENGTH VAR1 正確。源:立即數(shù)尋址。目的:存放器尋址12OR BL,TYPE VAR2正確。源:立即數(shù)尋址。目的:存放器尋址13SUB DI,78H錯(cuò)誤。指令類型不定14MOVS VAR1,VAR2正確。目的、源均為隱含尋址。操作數(shù)僅指出操作數(shù)類型15PUSH 100H錯(cuò)誤。將常數(shù)壓入堆棧,要通過存放器來實(shí)現(xiàn)16POPCS錯(cuò)誤。目的操作數(shù)不能為CS17*CHGA*,ES錯(cuò)誤。*CHG指令的操作數(shù)不能是段存放器18MOVDS

6、,CS錯(cuò)誤。MOV指令不能從段存放器到段存放器19JMP L1+5正確。段內(nèi)直接轉(zhuǎn)移20DIVA*,10錯(cuò)誤。指令格式錯(cuò)誤。21SHLBL,2錯(cuò)誤。移位指令的移位數(shù)為1或者CL22MOVAL,15+23正確。源:立即數(shù)尋址,目的:存放器。編譯時(shí)就處理為3823MULC*正確。源:存放器尋址,目的:存放器尋址24*CHGCL,SI 正確。源:存放器間接尋址,目的:存放器尋址25ADC CS:0100,AH 正確。源:存放器尋址,目的: 直接尋址數(shù)據(jù)在代碼段中26SBBVAR1-5,154正確。源:立即數(shù)尋址,目的:直接尋址。說明以下指令對的區(qū)別:MOV A*,VAR1 與 MOV A*,OFFS

7、ET VAR1MOV A*,VAR2 與 LEA A*,VAR2MOV AL,LENGTH VAR1 與 MOV AL,SIZE VAR1MOV AL,ES: DI CMP AL, SI 與 CMPSBSHR AL,1 與 SAR AL,1SHR AL,1 與 ROR AL,1ROL B*,1 與 RCL B*,1解:1MOV A*,VAR1 把變量VAR1對應(yīng)地址單元中的一個(gè)字送入A* MOV A*,OFFSET VAR1 把VAR1的有效地址的偏移地址送入A*2MOV A*,VAR2 把變量VAR2對應(yīng)地址單元中的一個(gè)字送入A* LEA A*,VAR2 把VAR2的有效地址的偏移地址送入A

8、*3MOV AL,LENGTH VAR1 把變量VAR1的長度送入ALMOV AL,SIZE VAR1 把變量VAR1的大小送入AL4MOV AL,ES:DI CMP AL,SI 把以ES為段地址,DI為偏移地址的一個(gè)字節(jié)送入AL,并與以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)容比擬5SHR AL,1AL邏輯右移1位,最高位移入0, 最低位移入CF。 SAR AL,1 AL算術(shù)右移1位,以最高位內(nèi)容

9、移入,最低位移入CF, 其余各位右移一位。6SHR AL,1 AL邏輯右移1位,最高位移入0, 最低位移入CF。 ROR AL,1AL的各位構(gòu)成環(huán)形移位,右移一位,最低位內(nèi)容同時(shí)移入到CF和最高位。7ROL B*,1 B*各位構(gòu)成環(huán)形移位,左移一位,最高位內(nèi)容同時(shí)移入到CF和最低位。RCL B*,1 B*和CF構(gòu)成環(huán)形移位,左移一位,CF內(nèi)容移入到最低位,最 高位移入CF。寫出以下轉(zhuǎn)移指令的尋址方式設(shè)L1為標(biāo)號,VAR1為字型變量,DVAR1為雙字型變量: 1JMP L12JMP NEAR L1 3JNZ L14JMP B*5JG L16JMP VAR1SI7JMP FAR PTR L1 8J

10、MP DVAR1解:1JMPL1 段內(nèi)直接尋址 2JMP NEAR PTR L1 段內(nèi)直接尋址3JNZ L1 段內(nèi)直接尋址 4JMP B*段內(nèi)間接尋址5JGL1 段內(nèi)直接尋址 6JMP VAR1SI段內(nèi)間接尋址7JMPFARPTR L1 段間直接尋址 8JMPDVAR1 段間間接尋址設(shè)DS2000H,B*0100H,SI0002H,201003412H,201027856H,212004C2AH,2120265B7H,求以下指令執(zhí)行后A*存放器的內(nèi)容: 1MOV A*,1200H; 2MOV A*,B*; 3MOV A*, 1200H; 4MOV A*, B*; 5MOV A*,1100B*;

11、6MOV A*, B*SI;7MOV A*,1100B*SI解:11200H 2 0100H 34C2AH 43412H 54C2AH 67856H 765B7H執(zhí)行以下指令后,D*存放器中的內(nèi)容是多少?TABLEDW 25,36,1,16,10000,13PYLDW 7MOV B*,OFFSET TABLEADD B*,PYLMOV D*,B*解:D* = 10FFH 由-16FFF0H的高8位和100002710H的低8位構(gòu)成如果堆棧的起始地址為2200:0000,棧底為0100H,SP00A8H,求1棧頂?shù)刂罚?SS的內(nèi)容;3再存入數(shù)據(jù)5678H,3AF2H后,SP的內(nèi)容。解:棧頂?shù)刂?

12、00A8H, SS = 2200H, 再存入2個(gè)字后,SP = 00A4H設(shè)已用偽指令EQU定義了4個(gè)標(biāo)識符:N1 EQU 2100N2 EQU 10N3 EQU 20000N4 EQU 25000以下指令是否正確?并說明原因。1ADD AL,N1N2;2MOV A*,N3N4;3SUB B*,N4N3;4SUB AH,N4N3N1;5ADD AL,N2;6MOV AH,N2*N2解:1錯(cuò)誤。N1-N2=2090255 2正確 3正確4錯(cuò)誤。N4-N3-N1=2900255 5正確 6正確按以下要求寫出指令:1將A*存放器的低4位清零,其余位不變;2將B*存放器的低4位置1,其余位不變;3將A

13、L存放器的低4位保持不變,高4位取反;4測試B*中的位1和位2,當(dāng)這兩位同時(shí)為0時(shí)將AL置0FFH,否則AL清零;5測試B*中的位1和位2,當(dāng)這兩位有一位為0時(shí)將AL置0FFH,否則AL清零;6將AL中保存的字母ASCII碼變換成相應(yīng)的大寫字母的ASCII碼;7將AL中保存的字母ASCII碼變換成相應(yīng)的小寫字母的ASCII碼;8將A*中的各位取反;9將D*中的低7位取反,高9位不變;10將C*中的低8位與高8位互換。解:1AND A*,0FFF0H 2OR B*,000FH 3*OR AL,0F0H4 TESTB*,06H 5MOVA*,B*JZ ZERO ANDA*,06H MOVAL,00

14、H *OR A*,06H JMP OVER JZ OVERZERO:MOVAL,0FFH MOVAL,0FFH OVER: OVER:6AND AL,5FH或者:CMPAL,61H JLOVER 無需變換或不是字母CMPAL,7AHJGOVER 不是字母AND AL,5FH 或 SUB AL,20HOVER:7OR AL,20H 或者:CMPAL,41H JLOVER 不是字母CMPAL,5AHJGOVER 無需變換或不是字母ORAL,20H 或 ADD AL,20HOVER:8*OR A*,0FFFFH或者NOTA*9*OR D*,007FH 10*CHGCH,CL寫出完成下述功能的程序段:

15、1傳送40H到AL存放器;2將AL的內(nèi)容乘以2;3傳送16H到AH存放器;4AL的內(nèi)容加上AH的內(nèi)容。計(jì)算最后結(jié)果AL?解:1MOV AL,40H 2SHL AL,1 3MOV AH,16H 4ADD AL,AH AL=96H寫出完成下述功能的程序段:1從緩沖區(qū)BUF的0004偏移地址處傳送一個(gè)字到A*存放器;2將A*存放器的內(nèi)容右移2位;3將A*內(nèi)容與BUF的0006偏移地址處的一個(gè)字相乘;4相乘結(jié)果存入BUF的0020H偏移地址處低位在前。解: 1LEA SI, BUFMOVA*, SI+4(2)SHRA*,1SHRA*,1(3)MULWORD PTR 6SI(4)MOV20HSI,A*M

16、OV22HSI,D*設(shè)B*11001011B,變量VAR的內(nèi)容為00110010B,求以下指令單獨(dú)執(zhí)行后B*的內(nèi)容:1*OR B*,VAR;2AND B*,VAR;3OR B*,VAR;4*OR B*,11110000B;5AND B*,00001111B;6TEST B*,1解:100F9H 20002H300FBH4003BH5000BH600CBH設(shè)D*10111011B,CL3,CF1,求以下指令單獨(dú)執(zhí)行后D*的內(nèi)容:1SHR D*,1;2SAR D*,CL;3SHL D*,CL;4SHL D*,1;5ROR D*,CL;6ROL DL,CL;7SAL DH,1;8RCL D*,CL;

17、9RCR DL,1解:D*= 0000 0000 1011 1011B CF=1 CL=31SHR D*,1D*邏輯右移10000 0000 0101 1101B=005DH2SARD*,CLD*算術(shù)右移30000 0000 0001 0111B=0017H3SHLD*,CLD*邏輯左移30000 0101 1101 1000B=05D8H4SHLD*,1D*邏輯左移10000 0001 0111 0110B=0176H5RORD*,CLD*循環(huán)右移30110 0000 0001 0111B=6017H6ROLDL,CLDL循環(huán)左移30000 0000 1101 1101B=00DDH7SAL

18、DH,1DH算術(shù)左移10000 0000 1011 1011B=00BBH8RCLD*,CLD*帶進(jìn)位循環(huán)左移30000 0101 1101 1100B=05DCH9RCRDL,1DL帶進(jìn)位循環(huán)右移10000 0000 1101 1101B=00DDH選擇題各小題只有一個(gè)正確答案1執(zhí)行以下三條指令后:MOV SP,1000HPUSH A*CALL B*a. SP1000H;b. SP0FFEH;c. SP1004H;d. SP0FFCH;2要檢查存放器AL中的內(nèi)容是否與AH一樣,應(yīng)使用的指令為:a. AND AL, AHb. OR AL, AHc. *OR AL, AH d. SBB AL,

19、AH3指令JMP NEAR PTR L1與CALL L1L1為標(biāo)號的區(qū)別在于:a. 尋址方式不同; b. 是否保存IP的內(nèi)容;c. 目的地址不同;d. 對標(biāo)志位的影響不同。解:1DPUSHU A*則A*入棧,SP=0FFEH;CALL B*則IP入棧,SP=0FFCH2C異或,假設(shè)一樣,則AL=0,ZF1。3B存放器D*:A*組成32位數(shù),D*為高位,編寫程序段實(shí)現(xiàn):1D*:A*右移3位,并將移出的低3位保存在CL中;2D*:A*左移3位,并將移出的高3位保存在CL中;解:1移出的3位應(yīng)該按時(shí)序移入CL中。 *OR CL,CL MOV BL,3L1: SHRD*,1RCRA*,1RCL CL,

20、1DEC BLJNZ L12移出的3位應(yīng)該按時(shí)序移入CL中。 *OR CL,CL MOV BL,3L1: SHLA*,1RCRD*,1RCR CL,1DEC BLJNZ L1編寫程序段實(shí)現(xiàn)將BL中的每一位重復(fù)4次,構(gòu)成32位的雙字D*:A*,例如當(dāng)BL01011101B時(shí),則得到的D*0F0FH,A*0FF0FH。解:算術(shù)右移時(shí),移入的值就是最高位本身,這樣可以使位內(nèi)容重復(fù),利用這一點(diǎn)可以實(shí)現(xiàn)題目的要求。*ORD*,D*ORA*,A*MOVC*,4L1:SHRBL,1RCRA*,1SARA*,1SARA*,1SARA*,1LOOPL1MOVC*,4L2: SHRBL,1RCRD*,1SARD*

21、,1SARD*,1SARD*,1LOOPL2字變量VAR1中保存有小于38250的16位無符號數(shù),編寫程序段實(shí)現(xiàn)VAR1150,并進(jìn)展四舍五入操作,將商保存在字節(jié)變量VAR2中。解:根據(jù)題意,38250150255,因此商不會超過255,可以用一個(gè)字節(jié)表示。ab的四舍五入操作可以通過判斷除后余數(shù)實(shí)現(xiàn):余數(shù)大于等于除數(shù)的一半,則商加1;否則不用加1。但這種方法用匯編語言編程實(shí)現(xiàn)時(shí)比擬復(fù)雜,這里介紹另外一種方法:設(shè)ab的四舍五入后的結(jié)果為c,用表示取整數(shù)操作,則這種方法是在除法操作之前,在被除數(shù)上加上除數(shù)的一半,這樣除法操作后得到的值就是考慮了四舍五入的商。VAR1DW 12345VAR2DB D

22、ATAADB 150MOV A*,VAR1*OR B*,B*MOV BL,DATAASHR B*,1ADD A*,B*DIV DATAAMOV VAR2,AL有一組無符號的16位數(shù)據(jù)保存在BUFFER中,前兩個(gè)字節(jié)存放數(shù)據(jù)的個(gè)數(shù),編程實(shí)現(xiàn)按下式進(jìn)展濾波處理:解:濾波結(jié)果保存在FILT中。BUFFER DW 0CHDW 33H, 18H, 1BH, 06H, 33H, 08HDW 3H, 6H, 0FH, 51H, 05H, 0CHFILT DW 100H DUPLEA SI,BUFFERLEA DI,FILTMOV C*,SIMOV DI,C*ADD SI,2ADD DI,2*OR D*,D*

23、MOV A*,SIMOV DI,A*MOV B*,2SIMOV 2DI,B*ADD SI,4ADD DI,4DEC C*DEC C*ADD A*,B*ADC D*,0MOV B*,3L1:ADD A*,SIADC D*,0PUSH D*PUSH A*DIV B*MOV DI,A*POP A*POP D*SUB A*, SI-4SUBB D*,0ADD DI,2ADD SI,2LOOP L1在由字符串構(gòu)成的緩沖區(qū)BUFFER中,前2個(gè)字節(jié)存放字符個(gè)數(shù),后續(xù)每個(gè)字節(jié)存放一個(gè)字符的ASCII碼。編寫程序?qū)崿F(xiàn)將字符串2004替換成2006。解:在數(shù)據(jù)段中定義:BUFFERDW 74DB This year is 2004. In 200

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論