微機(jī)原理習(xí)題答案1234章剖析_第1頁(yè)
微機(jī)原理習(xí)題答案1234章剖析_第2頁(yè)
微機(jī)原理習(xí)題答案1234章剖析_第3頁(yè)
微機(jī)原理習(xí)題答案1234章剖析_第4頁(yè)
微機(jī)原理習(xí)題答案1234章剖析_第5頁(yè)
已閱讀5頁(yè),還剩103頁(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、 微機(jī)原理與接口技術(shù) 習(xí)題解答 0 第1章 數(shù)制與碼制 1. 將下列十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù): (1)58;(2)67.625; (3)5721; 解:(1) 58D = 0011 1010B (2) 67.625D = 0100 0011.1010B (3) 5721D = 0001 0110 0101 1001B 2. 將二進(jìn)制數(shù)變換成十六進(jìn)制數(shù): (1)1001 0101B; (2)11 0100 1011B; (3)1111 1111 1111 1101B; (6)0100 0000 0001B (4)0100 0000 10101B;(5)0111 1111B; 解: (1)1001

2、0101B = 95H (2)11 0100 1011B = 34BH (3)1111 1111 1111 1101B = FFFDH (4)0 1000 0001 0101B = 815H (5)0111 1111B = 7FH (6)0100 0000 0001B = 401H 3. 將十六進(jìn)制數(shù)變換成二進(jìn)制數(shù)和十進(jìn)制數(shù): (1)78H; (2)0A6H; (3)1000H; (4)0FFFFH 解:(1)78H = 120D = 0111 1000B (2)0A6H = 166D = 1010 0110B (3)1000H = 4096D = 0001 0000 0000 0000H (

3、4)0FFFFH = 65535D = 1111 1111 1111 1111B 4. 將下列十進(jìn)制數(shù)轉(zhuǎn)換成十六進(jìn)制數(shù): (1)39; (2)299.34375; (3)54.5625 解:(1)39D = 27H (2)299.34375D = 12B.58H (3)54.5625D = 36.9H 5. 將下列二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù): (1)10110.101B; (2)10010010.001B; (3)11010.1101B 解:(1)10110.101B = 22.625D 1 (2)10010010.001B = 146.125D (3)11010.1101B = 26.8125D

4、 6. 計(jì)算(按原進(jìn)制運(yùn)算): (1)10001101B11010B; (2)10111B11100101B; (3)1011110B1110B; (4)124AH78FH; (5)5673H123H; (6)1000HF5CH; 解:(1)10100111B (2) 11111100B (3)1010000B (4)19D9H (5)5796H (6)A4H 7. 已知a=1011B, b=11001B, c=100110B, 按二進(jìn)制完成下列運(yùn)算,并用十進(jìn)制運(yùn)算檢查計(jì)算結(jié)果: (1)a+b; (2)c-a-b; (3)ab; (4)cb 解:a=1011B=11D b=11001B=25D

5、 c=100110B =38D (1)100100B = 36D (2)10B = 2D (3)1 0001 0011B=275D (4)1B 余1101B= 13D 8. 已知a=00111000B, b=11000111B, 計(jì)算下列邏輯運(yùn)算: (1)a AND b; (2)a OR b; (3)a XOR b; (4)NOT a 解:(1)00000000B (2)11111111B (3)11111111B (4)11000111B 9. 設(shè)機(jī)器字長(zhǎng)為8位,寫出下列各數(shù)的原碼和補(bǔ)碼: (1)+1010101B;(2)-1010101B;(3)+1111111B; (4)-1111111

6、B;(5)+1000000B;(6)-1000000B 解:(1)原01010101B 補(bǔ)01010101B (2)原11010101B 補(bǔ)10101011B 2 (3) 原01111111B 補(bǔ)01111111B (4) 原11111111B 補(bǔ)10000001B (5) 原01000000B 補(bǔ)01000000B (6) 原11000000B 補(bǔ)11000000B 10. 寫出下列十進(jìn)制數(shù)的二進(jìn)制補(bǔ)碼表示(設(shè)機(jī)器字長(zhǎng)為8位): (1)15;(2)1;(3)117;(4)0; (4)15;(5)127;(6)128;(7)80 解:(1) (00001111B)補(bǔ) (2) (11111111

7、B)補(bǔ) (3) (01110101B)補(bǔ) (4) (00000000B)補(bǔ) (5) (11110001B)補(bǔ) (6) (01111111B)補(bǔ) (7) (10000000B)補(bǔ) (8) (01010000B)補(bǔ) 11. 設(shè)機(jī)器字長(zhǎng)為8位,先將下列各數(shù)表示成二進(jìn)制補(bǔ)碼,然后按補(bǔ)碼進(jìn)行運(yùn)算,并用十進(jìn)制數(shù)運(yùn)算進(jìn)行檢驗(yàn): (1)8773;(2)87(73);(3)87(73); (4)(87)73;(5)(87)73;(6)(87)(73); 解:(1)1110B=14D (2)00001110B 進(jìn)位舍棄 (3)10100000B=-96D 溢出 (4)11110010B=-14D (5)01100

8、000B=96D 溢出 (6)11110010B=-14D 12. 已知a,b,c,d為二進(jìn)制補(bǔ)碼:a=00110010B, b=01001010B, c=11101001B, d=10111010B, 計(jì)算: (1)a+b;(2)a+c;(3)c+b;(4)c+d; (5)a-b;(6)c-a;(7)d-c;(8)a+d-c 解:(1)01111100B 3 (2)00011011B (3)00110011B (4)10100011B (5)11101000B (6)10110111B (7)11010001B (8)11B 13. 設(shè)下列四組為8位二進(jìn)制補(bǔ)碼表示的十六進(jìn)制數(shù),計(jì)算a+b和a

9、-b,并判斷其結(jié)果是否溢出: (1)a=37H, b=57H; (2)a=0B7H, b=0D7H; (3)a=0F7H, b=0D7H; (4)a=37H, b=0C7H 解:(1)a+b=8EH溢出,a-b=E0H未溢出 (2)8EH未溢出,E0H未溢出 (3)CEH未溢出,20H未溢出 (4)FEH未溢出70H未溢出 14. 求下列組合BCD數(shù)的二進(jìn)制和十六進(jìn)制表示形式: (1)3251(2)12907(3)2006 解:(1)0011 0010 0101 0001B = 3251H (2)0001 0010 1001 0111B = 12907H (3)0010 0000 0000 0

10、110B = 2006H 15. 將下列算式中的十進(jìn)制數(shù)表示成組合BCD碼進(jìn)行運(yùn)算,并用加6/減6修正其結(jié)果: (1)3842;(2)5677;(3)9988;(4)3469; (5)3842;(6)7756;(7)1576;(8)8923 解:(1) 0011 1000B + 0100 0010B = 0111 1010B 低BCD碼位需要加6修正 0111 1010B + 0000 0110B = 1000 0000B = 80BCD (2) 0101 0110B + 0111 0111B = 1100 1101B 高、低BCD碼位都需要加6修正 1100 1101B + 0110 011

11、0B = 0001 0011 0011B=133BCD (3) 1001 1001B+1000 1000B = 0001 0010 0001B 高、低BCD碼位都需要加6修正 0001 0010 0001B +0110 0110B = 0001 1000 0111B=187BCD (4) 0011 0100B + 0110 1001B = 1001 1101B 低BCD碼位需要加6修正 4 1001 1101B + 0000 0110B = 1010 0011B 修正結(jié)果使高BCD碼位需要加6修正 1010 0011B +0110 0000B = 0001 0000 0011B = 103BC

12、D (5) 00111000B-01000010B =(-1)1111 0110B 高 BCD碼位需要減6修正 (-1)1111 0110B -0110 0000B =(-1)1001 0110B=-100+96=-4BCD (6)01110111B-01010110B = 0010 0001B = 21BCD (7) 00011001B-01110110B =(-1)1001 1111B 高、低BCD碼位都需要減6修正 (-1)1001 1111B -01100110B =(-1)0011 1001B = -100+39 = -61BCD (8)10001001B-00100011B = 0

13、110 0110B = 66BCD 16. 將下列字符串表示成相應(yīng)的ASCII碼(用十六進(jìn)制數(shù)表示): (1)Example 1;(2)XiDian University;(3)-108.652; (4)How are you?;(5)Computer(6)Internet Web 解:(1)45H,78H,61H,6DH,70H,6CH,65H,20H,31H (2) 58H,69H,44H,69H,61H,6EH,20H,55H,6EH,69H,76H,65H,72H,73H,69H,74H,79H (3)2DH,31H,30H,38H,2EH,36H,35H,32H (4)48H,6FH

14、,77H,20H,61H72H,65H,20H79H,6FH,75H (5)43H,6FH,6DH,70H,75H,74H,65H,72H (6)49H,6EH,74H,65H72H,6EH,65H,74H,20H,57H,65H,62H 17. 將下列字符串表示成相應(yīng)的ASCII碼(用十六進(jìn)制數(shù)表示): (1)Hello(2)123456;(注:表示回車)(3)ASCII; (4)The number is 2315 解:(1)48H,65H,6CH,6CH,6FH (2)31H,32H,33H,0DH,34H,35H,36H (3)41H,53H,43H,49H,49H (4)54H,68

15、H,65H,20H,6EH,75H,6DH,62H,65H,72H 5 第2章 8086 CPU結(jié)構(gòu)與功能 1. 微處理器內(nèi)部結(jié)構(gòu)由哪幾部分組成?闡述各部分的主要功能。 解:微處理器內(nèi)部結(jié)構(gòu)由四部分組成: (1)算術(shù)邏輯運(yùn)算單元ALU:完成所有的運(yùn)算操作; (2)工作寄存器:暫存尋址信息和計(jì)算過(guò)程中的中間結(jié)果; (3)控制器:完成指令的讀入、寄存和譯碼,并產(chǎn)生控制信號(hào)序列使ALU完成指定操作; (4)I/O控制邏輯:處理I/O操作。 2. 微處理器級(jí)總線有哪幾類?各類總線有什么作用? 解:微處理器級(jí)總線有三類: (1)數(shù)據(jù)總線:傳送信息; (2)地址總線:傳送地址碼; (3)控制總線 傳送控制

16、信號(hào)。 3. 為什么地址總線是單向的,而數(shù)據(jù)總線是雙向的? 解:地址碼只能由CPU生成。而數(shù)據(jù)需要在CPU和存儲(chǔ)器之間傳輸。 4. 8086/8088微處理器內(nèi)部有哪些寄存器?其主要作用是什么? 解:8086CPU內(nèi)部有14個(gè)16位寄存器,其中8個(gè)通用寄存器(4數(shù)據(jù)寄存器AX、BX、CX、DX,4地址指針/變址寄存器SI、DI、SP、BP),4個(gè)段寄存器(CS、DS、ES、SS),2個(gè)控制寄存器(指令指針I(yè)P,微處理器狀態(tài)字PSW)。 應(yīng)該注意的是:可以在指令中用作為地址指針的寄存器有:SI、DI、BP和BX;在微處理器狀態(tài)字PSW中,一共設(shè)定了9個(gè)標(biāo)志位,其中6個(gè)標(biāo)志位用于反映ALU前一次操

17、作的結(jié)果狀態(tài)(CF,PF,AF,ZF,SF,OF),另3個(gè)標(biāo)志位用于控制CPU操作(DF,IF,TF)。 5. 如果某微處理器有20條地址總線和16條數(shù)據(jù)總線: (1)假定存儲(chǔ)器地址空間與I/O地址空間是分開的,則存儲(chǔ)器地址空間有多大? (2)數(shù)據(jù)總線上傳送的有符號(hào)整數(shù)的范圍有多大? 20?12MB )存儲(chǔ)器地址空間為:解:(1151512?232767 )有符號(hào)數(shù)范圍為: (2 即 32768, OF、SF、ZF、與下列各數(shù)相加,求出其結(jié)果及標(biāo)志位將十六進(jìn)制數(shù)6. 62A0HCFAF 6 和PF的值: (1) 1234H;(2) 4321H;(3) CFA0H;(4) 9D60H 解:(1)

18、 74D4H CF=0 AF=0 SF=0 ZF=0 OF=0 PF=1 (2) A5C1H CF=0 AF=0 SF=1 ZF=0 OF=1 PF=0 (3) 3240H CF=1 AF=0 SF=0 ZF=0 OF=0 PF=0 (4) 0000H CF=1 AF=0 SF=0 ZF=1 OF=0 PF=1 7. 從下列各數(shù)中減去4AE0H,求出其結(jié)果及標(biāo)志位CF、AF、SF、ZF、OF和PF的值: (1)1234H;(2)5D90H;(3)9090H;(4)EA04H 解:(1) C754H CF=1 AF=0 SF=1 ZF=0 OF=0 PF=0 (2) 12B0H CF=0 AF=

19、0 SF=0 ZF=0 OF=0 PF=0 (3) 45B0H CF=0 AF=0 SF=0 ZF=0 OF=1 PF=0 (4) 9F24H CF=0 AF=0 SF=1 ZF=0 OF=0 PF=1 9. 寫出下列存儲(chǔ)器地址的段地址、偏移地址和物理地址: (1)2134:10A0;(2)1FA0:0A1F;(3)267A:B876 解:物理地址段地址*10H+偏移地址 (1)段地址:2134H,偏移地址:10A0H,物理地址:223E0H (2)段地址:1FA0H,偏移地址:0A1FH,物理地址:2041FH (3)段地址:267AH,偏移地址:B876H,物理地址:32016H 10.

20、給定一個(gè)數(shù)據(jù)的有效地址為2359H,并且(DS)490BH,求該數(shù)據(jù)的物理地址。 解:物理地址段地址*10H+偏移地址 物理地址490BH 2359H 4B409H 11. 如果在一個(gè)程序段開始執(zhí)行之前,(CS)0A7F0H,(IP)2B40H,求該程序段的第一個(gè)字的物理地址。 解:物理地址段地址*10H+偏移地址 物理地址CS*10H+IP = AAA40H 12. IBM PC有哪些寄存器可用來(lái)指示存儲(chǔ)器的地址? 解:變址寄存器SI,DI,堆棧指針SP,BP,另外還有BX。 7 第3章 8086CPU指令系統(tǒng) 1. 寫出完成下列要求的變量定義語(yǔ)句: (1)在變量var1中保存6個(gè)字變量:4

21、512H,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,并將這一過(guò)程重復(fù)7次; (5)在變量var3中保存緩沖區(qū)buf1的長(zhǎng)度; (6)在變量pointer中保存變量var1和緩沖區(qū)buf1的偏移地址。 解:var1 DW 4512H,4512,-1,100/3,10H,65530 BYTE,word ,WORD var2 DB 100 DUPDB (? buf1 ) 7 DUP(5 DUP( 5

22、5Hbuf2 ),10 DUP(DB 240) LENGTH buf1 var3 DB var1,buf1 (或者pointer DW OFFSET var1,OFFSET buf1) pointer DW 2. 設(shè)變量var1的邏輯地址為0100:0000,畫出下列語(yǔ)句定義的變量的存儲(chǔ)分配圖: var1 DB 12,12,20/6,4 DUP(0,55H) var2 DB Assemble var3 DW AB, cd, E var4 DW var2 var5 DD var2 解: 8 (設(shè)對(duì)正確指令寫出源和目的操作數(shù)的尋址方式,對(duì)錯(cuò)誤指令指出原因3. 指令正誤判斷, :為字變量, L1為標(biāo)

23、號(hào))VAR1, VAR2VAR1SI MOV BX,(21)MOV SI,100 ) (MOV AL, DX 4)( 3)MOV AX, BX MOV VAR1, VAR2 6MOV BP, AL )( (5)MOV DS, 0100H )MOV CS, AX )(8 (7MOV AX, VAR1+VAR2 9 ()MOV BXSI, 1 )(10OR BL, TYPE VAR2 )ADD AX, LENGTH VAR1 )(12( 11MOVS VAR1, VAR2 (13)SUB DI, 78H )(14POP CS )PUSH 100H (16) (15MOV DS, CS ()(181

24、7)XCHG AX, ES DIV AX, 10 )( 19)JMP L1+5 20MOV AL, 15+23 SHL BL, 2 )(22 (21XCHG CL, SI 24)(23MUL CX (5,154 25()SBB VAR1(ADC CS:0100, AH 26) (解:1 MOV SI,100 目的:寄存器尋址正確。源:立即數(shù)尋址,)(2)MOV BX,VAR1SI 目的:寄存器尋址正確。源:寄存器相對(duì)尋址, (3)MOV AX,BX 正確。源:寄存器間接尋址,目的:寄存器尋址 )4MOV AL,DX 錯(cuò)誤。寄存器間接尋址時(shí),DX, AX, CX不能作地址寄存器 ( )5錯(cuò)誤。操

25、作數(shù)類型不一致 MOV BP,AL (6) 指令傳送數(shù)據(jù)錯(cuò)誤。兩存儲(chǔ)單元之間不能用MOVMOV VAR1,VAR2 9 (7)MOV CS,AX 錯(cuò)誤。CS不能為目的操作數(shù) 錯(cuò)誤。目的操作數(shù)為段寄存器時(shí),源操作數(shù)不能為立即數(shù) (8)MOV DS,0100H (9)MOV BXSI,錯(cuò)誤。指令類型不定。 1 (10)MOV AX,VMOV指令中不能完成加法運(yùn)算 AR1+VAR2 錯(cuò)誤。(11)ADD AX,LENGTH VAR1 正確。源:立即數(shù)尋址。目的:寄存器尋址 (12)OR BL,TYPE VAR2 正確。源:立即數(shù)尋址。目的:寄存器尋址 錯(cuò)誤。指令類型不定 ( 13) SUB DI,7

26、8H (14)MOVS VAR1,VAR2 正確。目的、源均為隱含尋址。操作數(shù)僅指出操作數(shù)類型 (15)PUSH 100H 錯(cuò)誤。將常數(shù)壓入堆棧,要通過(guò)寄存器來(lái)實(shí)現(xiàn) 錯(cuò)誤。目的操作數(shù)不能為CS CS (16)POP (17)XCHG AX,ES 錯(cuò)誤。XCHG指令的操作數(shù)不能是段寄存器 錯(cuò)誤。MOV指令不能從段寄存器到段寄存器)18MOV DS,CS (正確。段內(nèi)直接轉(zhuǎn)移 JMP L1+5 (19)錯(cuò)誤。指令格式錯(cuò)誤。 (20)DIV AX,10 BL, 錯(cuò)誤。移位指令的移位數(shù)為1或者CL 2 (21)SHL (22)MOV AL,15+23 正確。源:立即數(shù)尋址,目的:寄存器。編譯時(shí)就處理為

27、38 (23)MUL CX 正確。源:寄存器尋址,目的:寄存器尋址 (24)XCHG CL,SI 正確。源:寄存器間接尋址,目的:寄存器尋址 (25)ADC CS:0100,AH 正確。源:寄存器尋址,目的: 直接尋址(數(shù)據(jù)在代碼段中) (26)SBB VAR1-5,154 正確。源:立即數(shù)尋址,目的:直接尋址。 4. 說(shuō)明下列指令對(duì)的區(qū)別: (1)MOV AX,VAR1 與 MOV AX,OFFSET VAR1 與 LEA AX,(2)MOV AX,VAR2 VAR2 (3)MOV AL,LENGTH VAR1 與 MOV AL,SIZE VAR1 (4)MOV AL,ES: DI CMP

28、AL, SI 與 CMPSB (5)SHR AL,1 與 SAR AL,1 與 ROR AL, )(6SHR AL,1 1 與 RCL BX1 ,1 ,(7)ROL BX AX,VAR1 MOV 1解:()把變量VAR1對(duì)應(yīng)地址單元中的一個(gè)字送入AX AX,OFFSET VAR1 把V AR1的有效地址的偏移地址送入AX MOV 10 (2)MOV AX,VAR2 把變量VAR2對(duì)應(yīng)地址單元中的一個(gè)字送入AX LEA AX,VAR2 把VAR2的有效地址的偏移地址送入AX (3)MOV AL,LENGTH VAR1 把變量VAR1的長(zhǎng)度送入AL MOV AL,SIZE VAR1 把變量VAR1

29、的大小送入AL (4)MOV AL,ES:DI 把以ES為段地址,DI為偏移地址的一個(gè)字節(jié)送入AL, CMP AL,SI 并與以SI內(nèi)容為偏移地址的一個(gè)字節(jié)作比較,改變標(biāo)志寄 ES:(DI)與(DS: (SI)內(nèi)容比較)存器內(nèi)容。(相當(dāng)于作 CMPSB 對(duì)字符串中的一字節(jié)比較。尋址方式隱含。源串的地址由 DS:SI指定,目的串的地址由ES:DI指定。(相當(dāng)于作 )內(nèi)容比較)(DISI)與ES:DS: ( CF。1位,最高位移入0, 最低位移入,(5)SHR AL1 AL邏輯右移 其余各位算術(shù)右移1位,以最高位內(nèi)容移入,最低位移入CF, 1 SAR AL, AL 右移一位。 。0, 最低位移入C

30、F,(6)SHR AL1 AL邏輯右移1位,最高位移入 的各位構(gòu)成環(huán)形移位,右移一位,最低位內(nèi)容同時(shí)移入到CF和, ROR AL1 AL 最高位。 CF和 (7)ROL BX,1 BX各位構(gòu)成環(huán)形移位,左移一位,最高位內(nèi)容同時(shí)移入到 最低位。 內(nèi)容移入到最低位,最構(gòu)成環(huán)形移位,左移一位,RCL BX,1 BX和CFCF CF 高位移入。 5. 寫出下列轉(zhuǎn)移指令的尋址方式(設(shè)L1為標(biāo)號(hào),VAR1為字型變量,DVAR1為雙字型變量): (1)JMP L1 (2)JMP NEAR L1 (4)JNZ L1 (3)JMP BX (6)JG L1 )JMP VAR1SI (5(7 ()JMP FAR P

31、TR L1 8)JMP DVAR1 解:(1)JMP L1 段內(nèi)直接尋址 (2)JMP NEAR PTR L1 段內(nèi)直接尋址 (3)JNZ L1 段內(nèi)直接尋址 (4)JMP BX 段內(nèi)間接尋址 段內(nèi)間接尋址 (5)JG L1 段內(nèi)直接尋址 (6) JMP VAR1SI (7)JMP FAR PTR L1 段間直接尋址 (8)JMP DVAR1 段間間接尋址 11 6. 設(shè)(DS)2000H,(BX)0100H,(SI)0002H,(20100)3412H,(20102)7856H,(21200)4C2AH,(21202)65B7H,求下列指令執(zhí)行后AX寄存器的內(nèi)容: (1)MOV AX,120

32、0H; (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)65B7H 7. 執(zhí)行下列指令后,DX寄存器中的內(nèi)容是多少? TABLE DW 25,36,1,16,10000,13 DW 7 PYL OFFSET TABLE MOV BX,PYL ADD BX,BX MOV DX, 位構(gòu)成2710H)的低8位和(FFF0H)的高81

33、0000( 解:DX = 10FFH 由-16 )00A8H,求0000,棧底為0100H,(SP8. 如果堆棧的起始地址為2200: (1)棧頂?shù)刂罚?SS的內(nèi)容;(2) 3AF2H5678H,后,SP的內(nèi)容。 (3)再存入數(shù)據(jù)解:棧頂?shù)刂?00A8H, SS = 2200H, 再存入2個(gè)字后,SP = 00A4H 9. 設(shè)已用偽指令EQU定義了4個(gè)標(biāo)識(shí)符: N1 EQU 2100 N2 EQU 10 N3 EQU 20000 N4 EQU 25000 下列指令是否正確?并說(shuō)明原因。 (1)ADD AL,N1N2; (2)MOV AX,N3N4; (4)SUB AH, N4N3N1;,(3)

34、SUB BXN4N3 ; (6)MOV AH,;)( 5ADD AL,N2 N2*N2 解:(1)錯(cuò)誤。N1-N2=2090255 (2)正確 (3)正確 12 (4)錯(cuò)誤。N4-N3-N1=2900255 (5)正確 (6)正確 10. 按下列要求寫出指令: (1)將AX寄存器的低4位清零,其余位不變; (2)將BX寄存器的低4位置1,其余位不變; (3)將AL寄存器的低4位保持不變,高4位取反; (4)測(cè)試BX中的位1和位2,當(dāng)這兩位同時(shí)為0時(shí)將AL置0FFH,否則AL清零; (5)測(cè)試BX中的位1和位2,當(dāng)這兩位有一位為0時(shí)將AL置0FFH,否則AL清零; (6)將AL中保存的字母ASC

35、II碼變換成相應(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,0F0H BX,06H (5) MOV AX,BX (4) TEST JZ AX,06H ZERO AND MOV AL,00H XOR AX,06H JZ OVER JMP OVER ZERO: MOV AL,0FFH MOV AL,0FFH OVER: OVER: (6)AND

36、AL,5FH 或者: CMP AL,61H OVER (無(wú)需變換或不是字母) JL ALCMP , 7AH OVER (不是字母) JG AND AL,5FH 或 SUB AL,20H OVER: 13 (7)OR AL,20H 或者: CMP AL,41H OVER JL (不是字母) AL,CMP 5AH OVER JG (無(wú)需變換或不是字母) OR AL,20H 或 ADD AL,20H OVER: (8)XOR AX,0FFFFH 或者 NOT AX ,007FH (9)XOR DXCL XCHG (10)CH, 11. 寫出完成下述功能的程序段: (1)傳送40H到AL寄存器; ;的

37、內(nèi)容乘以2(2)將AL AH寄存器;3)傳送16H到( 的內(nèi)容。)AL的內(nèi)容加上AH(4 )?計(jì)算最后結(jié)果(AL AL,40H MOV 解:(1) AL,1 SHL (2) MOV (3) AH,16H AH ADD (4) AL,AL=96H 寫出完成下述功能的程序段:12. 寄存器;的BUF0004偏移地址處傳送一個(gè)字到AX(1)從緩沖區(qū) 寄存器的內(nèi)容右移2位;)將(2AX 的)將(3AX內(nèi)容與BUF0006偏移地址處的一個(gè)字相乘; 。的)相乘結(jié)果存入4BUF0020H偏移地址處(低位在前)(SI, BUF )( 解: 1 LEA 14 MOV AX, SI+4 AX,1 (2) SHR

38、SHR AX,1 (3) MUL WORD PTR 6SI (4) 20HSI,AX MOV 22HSI,DX MOV 13. 設(shè)(BX)11001011B,變量VAR的內(nèi)容為00110010B,求下列指令單獨(dú)執(zhí)行后BX的內(nèi)容: (1)XOR BX,VAR; (2)AND BX,VAR; ( 4)XOR BX,11110000B; )(3OR BX,VAR; (6)TEST BX,1 (5)AND BX,00001111B; 解:(1)00F9H (2)0002H 00FBH (3) 4)003BH (000BH 5)(00CBH )(614. 設(shè)(DX)10111011B,(CL)3,(CF

39、)1,求下列指令單獨(dú)執(zhí)行后DX的內(nèi)容: (1)SHR DX,1; (2)SAR DX,CL; (3)SHL DX,CL; (4)SHL DX,1; (5)ROR DX,CL; (6)ROL DL,CL; (7)SAL DH,1; (8)RCL DX,CL; (9)RCR DL,1 解:DX= 0000 0000 1011 1011B CF=1 CL=3 (1)SHR DX,1 DX邏輯右移1 0000 0000 0101 1101B = 005DH (2)SAR DX,CL DX算術(shù)右移3 0000 0000 0001 0111B = 0017H 05D8H 0000 0101 1101 10

40、00B DX邏輯左移3 CL (3)SHL DX,= 0176H = 邏輯左移 ,1 DX1 0000 0001 0111 0110B SHL (4)DX6017H ROR (5)DX,CL DX循環(huán)右移3 0110 0000 0001 0111B = 0000 0000 1101 1101B CL 3 = 00DDH 循環(huán)左移DLDLROL 6(),(7)SAL DH,1 DH算術(shù)左移1 0000 0000 1011 1011B = 00BBH 05DCH DX帶進(jìn)位循環(huán)左移3 ,D)(8RCL XCL = 0000 0101 1101 1100B 15 (9)RCR DL,1 DL帶進(jìn)位循

41、環(huán)右移1 0000 0000 1101 1101B = 00DDH 15. 選擇題(各小題只有一個(gè)正確答案) (1)執(zhí)行下列三條指令后: MOV SP,1000H PUSH AX CALL BX a. (SP)1000H; b. (SP)0FFEH; d. (SP) 0FFCHc. ( SP)1004H; ; (2 )要檢查寄存器AL中的內(nèi)容是否與AH相同,應(yīng)使用的指令為: a. AND AL, AH b. OR AL, AH c. XOR AL, AH d. SBB AL, AH ( 3)指令JMP NEAR PTR L1與CALL L1(L1為標(biāo)號(hào))的區(qū)別在于: a. 尋址方式不同; b.

42、 是否保存IP的內(nèi)容; d. 對(duì)標(biāo)志位的影響不同。 c. 目的地址不同; 解:(1)D PUSHU AX則AX入棧,SP=0FFEH;CALL BX則IP入棧,SP=0FFCH 異或,若相同,則AL=0,ZF(2)C 1。 )B (316. 寄存器DX:AX組成32位數(shù),DX為高位,編寫程序段實(shí)現(xiàn): (1)DX:AX右移3位,并將移出的低3位保存在CL中; (2)DX:AX左移3位,并將移出的高3位保存在CL中; 解:(1)移出的3位應(yīng)該按時(shí)序移入CL中。 XOR CL,CL MOV BL,3 L1: SHR DX,1 RCR AX,1 RCL CL,1 DEC BL JNZ L1 (2)移出

43、的3位應(yīng)該按時(shí)序移入CL中。 XOR CL,CL 16 MOV BL,3 L1: SHL AX,1 RCR DX,1 RCR CL,1 DEC BL JNZ L1 17. 編寫程序段實(shí)現(xiàn)將BL中的每一位重復(fù)4次,構(gòu)成32位的雙字DX:AX,例如當(dāng)BL01011101B時(shí),則得到的(DX)0F0FH,(AX)0FF0FH。 解:算術(shù)右移時(shí),移入的值就是最高位本身,這樣可以使位內(nèi)容重復(fù),利用這一點(diǎn)可以實(shí)現(xiàn)題目的要求。 XOR DX,DX AX,AX XOR CX,4 MOV L1: SHR BL,1 RCR AX,1 SAR AX,1 AX,1 SAR SAR AX,1 L1 LOOP CX,4

44、MOV L2: SHR BL,1 DX,1 RCR SAR DX,1 SAR DX,1 SAR DX,1 LOOP L2 18. 字變量VAR1中保存有小于38250的16位無(wú)符號(hào)數(shù),編寫程序段實(shí)現(xiàn)VAR1150,并進(jìn)行四舍五入操作,將商保存在字節(jié)變量VAR2中。 解:根據(jù)題意,38250150255,因此商不會(huì)超過(guò)255,可以用一個(gè)字節(jié)表示。 ab的四舍五入操作可以通過(guò)判斷除后余數(shù)實(shí)現(xiàn):余數(shù)大于等于除數(shù)的一半,則商加1; 17 a。但這種方法用匯編語(yǔ)言編程實(shí)現(xiàn)時(shí)比較復(fù)雜,這里介紹另外一種方法:設(shè)否則不用加1 ,用表示取整數(shù)操作,則b的四舍五入后的結(jié)果為cb?a?a?2?c?0.5? ? bb

45、?這種方法是在除法操作之前,在被除數(shù)上加上除數(shù)的一半,這樣除法操作后得到的值就是考慮了四舍五入的商。 VAR1 DW 12345 DB ? VAR2 DATAA DB 150 MOV AX,VAR1 XOR BX,BX MOV BL,DATAA SHR BX,1 ADD AX,BX DIV DATAA MOV VAR2,AL 19. 有一組無(wú)符號(hào)的16位數(shù)據(jù)保存在BUFFER中,前兩個(gè)字節(jié)存放數(shù)據(jù)的個(gè)數(shù),編程實(shí)現(xiàn)按下式進(jìn)行濾波處理: 1?y(k)?(k2)k?2?(kx()?xk?1)x 3 2?y(k)x(k?)k 解:濾波結(jié)果保存在FILT中。BUFFER DW 0CH DW 33H, 1

46、8H, 1BH, 06H, 33H, 08H DW 3H, 6H, 0FH, 51H, 05H, 0CH )?(FILT DW 100H DUP LEA SI,BUFFER LEA DI,FILT 18 MOV CX,SI MOV DI,CX ADD SI,2 ADD DI,2 XOR DX,DX MOV AX,SI MOV DI,AX MOV BX,2SI MOV 2DI,BX ADD SI,4 ADD DI,4 DEC CX DEC CX ADD AX,BX ADC DX,0 MOV BX,3 L1: ADD AX,SI ADC DX,0 PUSH DX PUSH AX DIV BX MO

47、V DI,AX POP AX POP DX SUB AX, SI-4 SUBB DX,0 ADD DI,2 ADD SI,2 LOOP L1 19 20. 在由字符串構(gòu)成的緩沖區(qū)BUFFER中,前2個(gè)字節(jié)存放字符個(gè)數(shù),后續(xù)每個(gè)字節(jié)存放一個(gè)字符的ASCII碼。編寫程序?qū)崿F(xiàn)將字符串2004替換成2006。 解:在數(shù)據(jù)段中定義: BUFFER DW 74 DB This year is 2004. In 2004, we have a plan for reducing annual expensive 10% DEST DB 2004 在代碼段中編寫程序段: CLD LEA SI, BUFFER

48、MOV CX,SI ADD SI,2 LEA DI,DEST L1: PUSH SI PUSH DI PUSH CX MOV CX,4 REPZ SCASB JNZ L2 MOV BYTE PTR SI-1,6 L2: POP CX POP DI POP SI INC SI INC DI LOOP L1 21. 定義有下列宏指令: WAGS MACRO S1,S2,S3 SUB AX,AX 20 MOV DX,AX ADD AX,S1 ADD AX,S2 ADC DX,0 ADD AX,S3 ADC DX,0 ENDM 當(dāng)采用宏調(diào)用指令“WAGS 60000,25000,3000”時(shí),執(zhí)行后D

49、X AX 。 解:宏指令WAGS完成的功能為S1+S2+S3,結(jié)果放在DX:AX中。所以,調(diào)用“WAGS 60000,25000,3000”時(shí),其結(jié)果為 DX=0001H ,AX=57C0H 22. 對(duì)上題定義的宏指令,如果采用宏調(diào)用指令“WAGS BX,CX,SI”時(shí),寫出宏展開形式。 解:調(diào)用“WAGS BX,CX,SI”時(shí),宏展開形式: SUB AX,AX MOV DX,AX ADD AX,BX ADD AX,CX ADC DX,0 ADD AX,SI ADC DX,0 23. 寫出宏指令SUMMING,實(shí)現(xiàn)將字節(jié)緩沖區(qū)array中的內(nèi)容求校驗(yàn)和(保留低8位),并保存在VALUE中。 解:設(shè)array前兩個(gè)字節(jié)保存緩沖區(qū)字節(jié)數(shù),在宏指令SUMMING,將array和VALUE作為形式參數(shù)。 SUMMING MACRO array,VALUE LEA SI,array MOV CX,SI ADD SI,2 AL,AL XOR AL,SI L1: ADD SI INC 21 LOOP L1 MOV VALUE,AL ENDM 22 第4章 匯編語(yǔ)言程序設(shè)計(jì) 1. 已知在BUF的起始處保存有N個(gè)字符的ASCII碼,編寫匯編語(yǔ)言程序?qū)崿F(xiàn),將這組字符串傳送到緩沖區(qū)BUFR中,并且使字符串的順序與原來(lái)的順序相反。 解:BUF DB BONJOUR_BEL

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論