




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、微機(jī)原理與接口技術(shù)習(xí)題解答第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 1001B2. 將二進(jìn)制數(shù)變換成十六進(jìn)制數(shù):(1)1001 0101B;(2)11 0100 1011B;(3)1111 1111 1111 1101B; (4)0100 0000 10101B;(5)0111 1111B;(6)0100 0000 0001B解: (1)1001 0101B = 95H (
2、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 = 401H3. 將十六進(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 (4)0FFFFH = 65535D
3、 = 1111 1111 1111 1111B4. 將下列十進(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.9H5. 將下列二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù): (1)10110.101B; (2)10010010.001B; (3)11010.1101B解:(1)10110.101B = 22.625D (2)10010010.001B = 146.125D (3)11010.1101B = 26.8125D6. 計(jì)算(按原進(jìn)制運(yùn)算): (1)10001
4、101B11010B; (2)10111B11100101B; (3)1011110B1110B; (4)124AH78FH; (5)5673H123H; (6)1000HF5CH;解:(1)10100111B (2) 11111100B (3)1010000B (4)19D9H (5)5796H (6)A4H7. 已知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 c=100110B =38D(1)100100B =
5、 36D(2)10B = 2D(3)1 0001 0011B=275D (4)1B 余1101B= 13D8. 已知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)11000111B9. 設(shè)機(jī)器字長為8位,寫出下列各數(shù)的原碼和補(bǔ)碼: (1)+1010101B;(2)-1010101B;(3)+1111111B; (4)-1111111B;(5)+1000000B;(6)-1000000B解:(1)原
6、01010101B 補(bǔ)01010101B (2)原11010101B 補(bǔ)10101011B(3) 原01111111B 補(bǔ)01111111B (4) 原11111111B 補(bǔ)10000001B (5) 原01000000B 補(bǔ)01000000B (6) 原11000000B 補(bǔ)11000000B10. 寫出下列十進(jìn)制數(shù)的二進(jìn)制補(bǔ)碼表示(設(shè)機(jī)器字長為8位): (1)15;(2)1;(3)117;(4)0; (4)15;(5)127;(6)128;(7)80解:(1) (00001111B)補(bǔ) (2) (11111111B)補(bǔ) (3) (01110101B)補(bǔ) (4) (00000000B)補(bǔ) (
7、5) (11110001B)補(bǔ) (6) (01111111B)補(bǔ)(7) (10000000B)補(bǔ)(8) (01010000B)補(bǔ)11. 設(shè)機(jī)器字長為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)01100000B=96D 溢出 (6)11110010B=-14D12. 已知a,b,c,d為二
8、進(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 (2)00011011B (3)00110011B (4)10100011B(5)11101000B (6)10110111B (7)11010001B (8)11B13. 設(shè)下列四組為8位二進(jìn)制補(bǔ)碼表示的十六進(jìn)制數(shù),計(jì)算a+b和a-b,并判斷其結(jié)果是否溢出: (1)a=37H, b=57H; (2)a=0B7H, b=0D7H;
9、 (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 0110B = 2006H 15. 將下列算式中的十進(jìn)制數(shù)表示成組合BCD碼進(jìn)行運(yùn)算,并用加6/減6修正其結(jié)果
10、: (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 0110B = 0001 0011 0011B=133BCD(3) 1001 1001B+1000 1000B = 000
11、1 0010 0001B 高、低BCD碼位都需要加6修正0001 0010 0001B +0110 0110B = 0001 1000 0111B=187BCD (4) 0011 0100B + 0110 1001B = 1001 1101B 低BCD碼位需要加6修正1001 1101B + 0000 0110B = 1010 0011B 修正結(jié)果使高BCD碼位需要加6修正1010 0011B +0110 0000B = 0001 0000 0011B = 103BCD(5) 00111000B-01000010B =(-1)1111 0110B 高 BCD碼位需要減6修正(-1)1111 0
12、110B -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 = 0110 0110B = 66BCD16. 將下列字符串表示成相應(yīng)的ASCII碼(用十六進(jìn)制數(shù)表示): (1)Example 1;(2)XiD
13、ian 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,77H,20H,61H72H,65H,20H79H,6FH,75H(5)43H,6FH,6DH,70H,75H,74H,65H,72H(6)49H,
14、6EH,74H,65H72H,6EH,65H,74H,20H,57H,65H,62H17. 將下列字符串表示成相應(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,68H,65H,20H,6EH,75H,6DH,62H,65H,72H第2章 8086 CPU結(jié)構(gòu)與功能1. 微處理器內(nèi)部結(jié)構(gòu)由哪幾部分組成?闡述各部分的主要功能
15、。解:微處理器內(nèi)部結(jié)構(gòu)由四部分組成: (1)算術(shù)邏輯運(yùn)算單元ALU:完成所有的運(yùn)算操作; (2)工作寄存器:暫存尋址信息和計(jì)算過程中的中間結(jié)果; (3)控制器:完成指令的讀入、寄存和譯碼,并產(chǎn)生控制信號序列使ALU完成指定操作;(4)I/O控制邏輯:處理I/O操作。2. 微處理器級總線有哪幾類?各類總線有什么作用?解:微處理器級總線有三類: (1)數(shù)據(jù)總線:傳送信息; (2)地址總線:傳送地址碼; (3)控制總線 傳送控制信號。3. 為什么地址總線是單向的,而數(shù)據(jù)總線是雙向的?解:地址碼只能由CPU生成。而數(shù)據(jù)需要在CPU和存儲(chǔ)器之間傳輸。4. 8086/8088微處理器內(nèi)部有哪些寄存器?其主
16、要作用是什么?解: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前一次操作的結(jié)果狀態(tài)(CF,PF,AF,ZF,SF,OF),另3個(gè)標(biāo)志位用于控制CPU操作(DF,IF,TF)。5. 如果某微處理器有20條地址總線和16條數(shù)據(jù)總線: (1)假定存儲(chǔ)器地址空間
17、與I/O地址空間是分開的,則存儲(chǔ)器地址空間有多大? (2)數(shù)據(jù)總線上傳送的有符號整數(shù)的范圍有多大?解:(1)存儲(chǔ)器地址空間為: (2)有符號數(shù)范圍為: , 即 32768327676. 將十六進(jìn)制數(shù)62A0H與下列各數(shù)相加,求出其結(jié)果及標(biāo)志位CF、AF、SF、ZF、OF和PF的值: (1) 1234H;(2) 4321H;(3) CFA0H;(4) 9D60H解:(1) 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
18、=0 (4) 0000H CF=1 AF=0 SF=0 ZF=1 OF=0 PF=17. 從下列各數(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=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=19. 寫出下列存儲(chǔ)器地址的段地址
19、、偏移地址和物理地址:(1)2134:10A0;(2)1FA0:0A1F;(3)267A:B876解:物理地址段地址*10H+偏移地址(1)段地址:2134H,偏移地址:10A0H,物理地址:223E0H(2)段地址:1FA0H,偏移地址:0A1FH,物理地址:2041FH(3)段地址:267AH,偏移地址:B876H,物理地址:32016H10. 給定一個(gè)數(shù)據(jù)的有效地址為2359H,并且(DS)490BH,求該數(shù)據(jù)的物理地址。解:物理地址段地址*10H+偏移地址物理地址490BH 2359H 4B409H11. 如果在一個(gè)程序段開始執(zhí)行之前,(CS)0A7F0H,(IP)2B40H,求該程序
20、段的第一個(gè)字的物理地址。解:物理地址段地址*10H+偏移地址物理地址CS*10H+IP = AAA40H12. IBM PC有哪些寄存器可用來指示存儲(chǔ)器的地址?解:變址寄存器SI,DI,堆棧指針SP,BP,另外還有BX。第3章 8086CPU指令系統(tǒng)1. 寫出完成下列要求的變量定義語句:(1)在變量var1中保存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次
21、;(5)在變量var3中保存緩沖區(qū)buf1的長度;(6)在變量pointer中保存變量var1和緩沖區(qū)buf1的偏移地址。解:var1DW4512H,4512,-1,100/3,10H,65530var2DBBYTE,word,WORDbuf1DB100 DUP(?)buf2DB7 DUP(5 DUP(55H),10 DUP(240)var3DBLENGTH buf1pointerDW var1,buf1 (或者pointer DW OFFSET var1,OFFSET buf1)2. 設(shè)變量var1的邏輯地址為0100:0000,畫出下列語句定義的變量的存儲(chǔ)分配圖: var1 DB 12,1
22、2,20/6,4 DUP(0,55H) var2 DB Assemble var3 DW AB, cd, E var4 DW var2 var5 DD var2解:3. 指令正誤判斷,對正確指令寫出源和目的操作數(shù)的尋址方式,對錯(cuò)誤指令指出原因(設(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, AL(6)MOV VAR1, VAR2 (7)MOV CS, AX(8)MOV DS, 0100H (9)MOV BXSI, 1(10)MOV AX, VAR1+VAR2
23、 (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 VAR15,154解:(1)MOV SI,100正確。源:立即數(shù)尋址, 目的:寄存器尋址(2)MOV BX,V
24、AR1SI 正確。源:寄存器相對尋址, 目的:寄存器尋址(3)MOV AX,BX正確。源:寄存器間接尋址,目的:寄存器尋址(4)MOV AL,DX錯(cuò)誤。寄存器間接尋址時(shí),DX, AX, CX不能作地址寄存器(5)MOV BP,AL錯(cuò)誤。操作數(shù)類型不一致(6)MOV VAR1,VAR2錯(cuò)誤。兩存儲(chǔ)單元之間不能用MOV指令傳送數(shù)據(jù)(7)MOV CS,AX錯(cuò)誤。CS不能為目的操作數(shù)(8)MOV DS,0100H錯(cuò)誤。目的操作數(shù)為段寄存器時(shí),源操作數(shù)不能為立即數(shù)(9)MOV BXSI,1錯(cuò)誤。指令類型不定。(10)MOV AX,VAR1+VAR2 錯(cuò)誤。MOV指令中不能完成加法運(yùn)算(11)ADD AX
25、,LENGTH VAR1 正確。源:立即數(shù)尋址。目的:寄存器尋址(12)OR BL,TYPE VAR2正確。源:立即數(shù)尋址。目的:寄存器尋址(13)SUB DI,78H錯(cuò)誤。指令類型不定(14)MOVS VAR1,VAR2正確。目的、源均為隱含尋址。操作數(shù)僅指出操作數(shù)類型(15)PUSH 100H錯(cuò)誤。將常數(shù)壓入堆棧,要通過寄存器來實(shí)現(xiàn)(16)POPCS錯(cuò)誤。目的操作數(shù)不能為CS(17)XCHGAX,ES錯(cuò)誤。XCHG指令的操作數(shù)不能是段寄存器(18)MOVDS,CS錯(cuò)誤。MOV指令不能從段寄存器到段寄存器(19)JMP L1+5正確。段內(nèi)直接轉(zhuǎn)移(20)DIVAX,10錯(cuò)誤。指令格式錯(cuò)誤。(
26、21)SHLBL,2錯(cuò)誤。移位指令的移位數(shù)為1或者CL(22)MOVAL,15+23正確。源:立即數(shù)尋址,目的:寄存器。編譯時(shí)就處理為38(23)MULCX正確。源:寄存器尋址,目的:寄存器尋址(24)XCHGCL,SI 正確。源:寄存器間接尋址,目的:寄存器尋址(25)ADC CS:0100,AH 正確。源:寄存器尋址,目的: 直接尋址(數(shù)據(jù)在代碼段中)(26)SBBVAR1-5,154正確。源:立即數(shù)尋址,目的:直接尋址。4. 說明下列指令對的區(qū)別:(1) MOV AX,VAR1 與 MOV AX,OFFSET VAR1(2) MOV AX,VAR2 與 LEA AX,VAR2(3) MO
27、V AL,LENGTH VAR1 與 MOV AL,SIZE VAR1(4) MOV AL,ES: DI CMP AL, SI 與 CMPSB(5) SHR AL,1 與 SAR AL,1(6) SHR AL,1 與 ROR AL,1(7) ROL BX,1 與 RCL BX,1解:(1)MOV AX,VAR1 把變量VAR1對應(yīng)地址單元中的一個(gè)字送入AX MOV AX,OFFSET VAR1 把VAR1的有效地址的偏移地址送入AX(2)MOV AX,VAR2 把變量VAR2對應(yīng)地址單元中的一個(gè)字送入AX LEA AX,VAR2 把VAR2的有效地址的偏移地址送入AX(3)MOV AL,LEN
28、GTH VAR1 把變量VAR1的長度送入ALMOV AL,SIZE VAR1 把變量VAR1的大小送入AL(4)MOV 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)容比較)(5)SHR AL,1AL邏輯右移1位,最高位移入0, 最低位移入CF。 SAR AL,1 AL算術(shù)右移1位,以
29、最高位內(nèi)容移入,最低位移入CF, 其余各位右移一位。(6)SHR AL,1 AL邏輯右移1位,最高位移入0, 最低位移入CF。 ROR AL,1AL的各位構(gòu)成環(huán)形移位,右移一位,最低位內(nèi)容同時(shí)移入到CF和最高位。(7)ROL BX,1 BX各位構(gòu)成環(huán)形移位,左移一位,最高位內(nèi)容同時(shí)移入到CF和最低位。RCL BX,1 BX和CF構(gòu)成環(huán)形移位,左移一位,CF內(nèi)容移入到最低位,最 高位移入CF。5. 寫出下列轉(zhuǎn)移指令的尋址方式(設(shè)L1為標(biāo)號,VAR1為字型變量,DVAR1為雙字型變量): (1)JMP L1(2)JMP NEAR L1 (3)JNZ L1(4)JMP BX (5)JG L1(6)J
30、MP VAR1SI (7)JMP FAR PTR L1 (8)JMP DVAR1解:(1)JMPL1 段內(nèi)直接尋址 (2)JMP NEAR PTR L1 段內(nèi)直接尋址(3)JNZ L1 段內(nèi)直接尋址 (4)JMP BX段內(nèi)間接尋址(5)JGL1 段內(nèi)直接尋址 (6)JMP VAR1SI段內(nèi)間接尋址(7)JMPFARPTR L1 段間直接尋址 (8)JMPDVAR1 段間間接尋址6. 設(shè)(DS)2000H,(BX)0100H,(SI)0002H,(20100)3412H,(20102)7856H,(21200)4C2AH,(21202)65B7H,求下列指令執(zhí)行后AX寄存器的內(nèi)容: (1)MOV
31、 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)65B7H7. 執(zhí)行下列指令后,DX寄存器中的內(nèi)容是多少?TABLEDW 25,36,1,16,10000,13PYLDW 7MOV BX,OFFSET TABLEADD BX,PYLMOV DX,BX解:DX = 10FFH 由-16(FFF0H)的高8位和
32、10000(2710H)的低8位構(gòu)成8. 如果堆棧的起始地址為2200:0000,棧底為0100H,(SP)00A8H,求(1)棧頂?shù)刂?;?)SS的內(nèi)容;(3)再存入數(shù)據(jù)5678H,3AF2H后,SP的內(nèi)容。解:棧頂?shù)刂?00A8H, SS = 2200H, 再存入2個(gè)字后,SP = 00A4H9. 設(shè)已用偽指令EQU定義了4個(gè)標(biāo)識符:N1 EQU 2100N2 EQU 10N3 EQU 20000N4 EQU 25000下列指令是否正確?并說明原因。(1)ADD AL,N1N2;(2)MOV AX,N3N4;(3)SUB BX,N4N3;(4)SUB AH,N4N3N1;(5)ADD AL
33、,N2;(6)MOV AH,N2*N2解:(1)錯(cuò)誤。N1-N2=2090255 (2)正確 (3)正確(4)錯(cuò)誤。N4-N3-N1=2900255 (5)正確 (6)正確10. 按下列要求寫出指令:(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中保存的字母ASCII碼變換成相應(yīng)的大寫字母的ASCII碼;(7)將AL中保存的字母ASC
34、II碼變換成相應(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(4) TESTBX,06H (5)MOVAX,BX JZ ZERO ANDAX,06H MOVAL,00H XOR AX,06H JMP OVER JZ OVERZERO:MOVAL,0FFH MOVAL,0FFH OVER: OVER: (6)AND AL,5FH或者:CMPAL,61H JLOVER (無需變換或不是字母)CMPAL,7AHJGOVE
35、R (不是字母)AND AL,5FH 或 SUB AL,20HOVER: (7)OR AL,20H 或者:CMPAL,41H JLOVER (不是字母)CMPAL,5AHJGOVER (無需變換或不是字母)ORAL,20H 或 ADD AL,20HOVER:(8)XOR AX,0FFFFH或者NOTAX(9)XOR DX,007FH (10)XCHGCH,CL11. 寫出完成下述功能的程序段:(1)傳送40H到AL寄存器;(2)將AL的內(nèi)容乘以2;(3)傳送16H到AH寄存器;(4)AL的內(nèi)容加上AH的內(nèi)容。計(jì)算最后結(jié)果(AL)?解:(1)MOV AL,40H (2)SHL AL,1 (3)M
36、OV AH,16H (4)ADD AL,AH AL=96H12. 寫出完成下述功能的程序段:(1)從緩沖區(qū)BUF的0004偏移地址處傳送一個(gè)字到AX寄存器;(2)將AX寄存器的內(nèi)容右移2位;(3)將AX內(nèi)容與BUF的0006偏移地址處的一個(gè)字相乘;(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,求下列指令單獨(dú)執(zhí)行后BX的內(nèi)容:(1)
37、XOR BX,VAR;(2)AND BX,VAR;(3)OR BX,VAR;(4)XOR BX,11110000B;(5)AND BX,00001111B;(6)TEST BX,1解:(1)00F9H (2)0002H(3)00FBH(4)003BH(5)000BH(6)00CBH14. 設(shè)(DX)10111011B,(CL)3,(CF)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
38、解:DX= 0000 0000 1011 1011B CF=1 CL=3(1)SHR DX,1DX邏輯右移10000 0000 0101 1101B=005DH(2)SARDX,CLDX算術(shù)右移30000 0000 0001 0111B=0017H(3)SHLDX,CLDX邏輯左移30000 0101 1101 1000B=05D8H(4)SHLDX,1DX邏輯左移10000 0001 0111 0110B=0176H(5)RORDX,CLDX循環(huán)右移30110 0000 0001 0111B=6017H(6)ROLDL,CLDL循環(huán)左移30000 0000 1101 1101B=00DDH(
39、7)SALDH,1DH算術(shù)左移10000 0000 1011 1011B=00BBH(8)RCLDX,CLDX帶進(jìn)位循環(huán)左移30000 0101 1101 1100B=05DCH(9)RCRDL,1DL帶進(jìn)位循環(huán)右移10000 0000 1101 1101B=00DDH15. 選擇題(各小題只有一個(gè)正確答案)(1)執(zhí)行下列三條指令后:MOV SP,1000HPUSH AXCALL BXa. (SP)1000H;b. (SP)0FFEH;c. (SP)1004H;d. (SP)0FFCH;(2)要檢查寄存器AL中的內(nèi)容是否與AH相同,應(yīng)使用的指令為:a. AND AL, AHb. OR AL,
40、AHc. XOR AL, AH d. SBB AL, AH(3)指令JMP NEAR PTR L1與CALL L1(L1為標(biāo)號)的區(qū)別在于:a. 尋址方式不同; b. 是否保存IP的內(nèi)容;c. 目的地址不同;d. 對標(biāo)志位的影響不同。解:(1)DPUSHU AX則AX入棧,SP=0FFEH;CALL BX則IP入棧,SP=0FFCH(2)C異或,若相同,則AL=0,ZF1。(3)B16. 寄存器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
41、中。 XOR CL,CL MOV BL,3L1: SHRDX,1RCRAX,1RCL CL,1DEC BLJNZ L1(2)移出的3位應(yīng)該按時(shí)序移入CL中。 XOR CL,CL MOV BL,3L1: SHLAX,1RCRDX,1RCR CL,1DEC BLJNZ L117. 編寫程序段實(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)題目的要求。XORDX,DXXORAX,AXMOVCX,4L1:SHRBL,1 RCRAX,
42、1SARAX,1SARAX,1SARAX,1LOOPL1MOVCX,4L2: SHRBL,1RCRDX,1 SARDX,1 SARDX,1 SARDX,1LOOPL218. 字變量VAR1中保存有小于38250的16位無符號數(shù),編寫程序段實(shí)現(xiàn)VAR1150,并進(jìn)行四舍五入操作,將商保存在字節(jié)變量VAR2中。解:根據(jù)題意,38250150255,因此商不會(huì)超過255,可以用一個(gè)字節(jié)表示。ab的四舍五入操作可以通過判斷除后余數(shù)實(shí)現(xiàn):余數(shù)大于等于除數(shù)的一半,則商加1;否則不用加1。但這種方法用匯編語言編程實(shí)現(xiàn)時(shí)比較復(fù)雜,這里介紹另外一種方法:設(shè)ab的四舍五入后的結(jié)果為c,用表示取整數(shù)操作,則這種方法
43、是在除法操作之前,在被除數(shù)上加上除數(shù)的一半,這樣除法操作后得到的值就是考慮了四舍五入的商。 VAR1DW 12345VAR2DB ?DATAADB 150MOV AX,VAR1XOR BX,BXMOV BL,DATAASHR BX,1ADD AX,BXDIV DATAAMOV VAR2,AL19. 有一組無符號的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
44、 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,0MOV BX,3L1:ADD 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個(gè)字節(jié)存放
45、字符個(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在代碼段中編寫程序段:CLDLEASI, BUFFERMOVCX,SIADDSI,2LEADI,DESTL1:PUSH SIPUSH DIPUSHCXMOV CX,4REPZSCASBJNZL2MOV BYTE PTR SI-1,6L2:POP CXPOPDIPOPSIINCS
46、IINCDILOOP L121. 定義有下列宏指令:WAGSMACRO S1,S2,S3SUB AX,AXMOV DX,AXADD AX,S1ADD AX,S2ADC DX,0ADD AX,S3ADC DX,0ENDM當(dāng)采用宏調(diào)用指令“WAGS 60000,25000,3000”時(shí),執(zhí)行后DX AX 。解:宏指令WAGS完成的功能為S1+S2+S3,結(jié)果放在DX:AX中。所以,調(diào)用“WAGS 60000,25000,3000”時(shí),其結(jié)果為DX=0001H ,AX=57C0H22. 對上題定義的宏指令,如果采用宏調(diào)用指令“WAGS BX,CX,SI”時(shí),寫出宏展開形式。解:調(diào)用“WAGS BX,
47、CX,SI”時(shí),宏展開形式:SUB AX,AXMOV DX,AXADD AX,BXADD AX,CXADC DX,0ADD AX,SIADC DX,023. 寫出宏指令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,VALUELEA SI,array MOV CX,SIADDSI,2 XOR AL,ALL1:ADD AL,SIINCSILOOPL1MOV VALUE,ALENDM第4章 匯編語言程序設(shè)計(jì)
48、1. 已知在BUF的起始處保存有N個(gè)字符的ASCII碼,編寫匯編語言程序?qū)崿F(xiàn),將這組字符串傳送到緩沖區(qū)BUFR中,并且使字符串的順序與原來的順序相反。解:BUF DB BONJOUR_BELLEBUFRDB 100 DUP(?)MOV CX, NLEA SI, BUFLEA DI, BUFRADD DI,CXDEC DIL1:MOV AL,SIMOV DI,ALINC SIDEC DILOOP L12. 利用移位、傳送和相加指令實(shí)現(xiàn)AX的內(nèi)容擴(kuò)大10倍。解:將擴(kuò)大后的結(jié)果放在DX:AX中,注意到10AX8AX2AX。XOR DX,DXSHL AX, 1RCLDX, 1MOV BX,AXMOVC
49、X,DXSHL AX, 1RCLDX, 1SHL AX, 1RCLDX, 1ADD AX, BXADCDX, CX3. 在緩沖區(qū)VAR中連續(xù)存放著3個(gè)16位的無符號數(shù),編寫程序?qū)崿F(xiàn)將其按遞增關(guān)系排列;如果VAR中保存的為有符號數(shù),則再編寫程序?qū)崿F(xiàn)將其按遞減關(guān)系排列。解:VAR DW 1236,-432,3900XOR SI,SIMOV AX,VARSICMP AX, VARSI+2JAE L1XCHG AX, VARSI+2L1: CMP AX, VARSI+4JAE L2XCHG AX, VARSI+4L2:MOV VARSI, AXMOV AX,VARSI+2CMP AX, VARSI+4JAE L3XCHG AX, VARSI+4L3: MOV VARSI+2, AX4. 編寫程序段實(shí)現(xiàn)將AL和BL中的每一位依次交叉,得到的16位字保存在DX中,例如(AL)01100101B,(BL)11011010B,則得到的(DX)10110110 10011001B。解:利用移位指令完成。XOR DX,DXMOV CX,8L1:SHR AL,1RCR DX,1SHR BL,1RCR DX,1LOOP L15. 在變量VAR1和VAR2中分別保存有兩個(gè)字節(jié)型的正整數(shù),
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《A day in the park》作業(yè)設(shè)計(jì)方案
- 個(gè)人消防責(zé)任書
- 協(xié)議合同和加盟合同范本
- 醫(yī)療器材加工合同范本
- 中藥炮制工中級習(xí)題庫+參考答案
- 生物制藥復(fù)習(xí)題+答案
- 農(nóng)藝工中級??荚囶}(含答案)
- 接觸網(wǎng)中級工測試題
- 七律長征 教案教學(xué)設(shè)計(jì)
- 危廢傭金合同范本
- 《起重機(jī)械安全評估規(guī)范》編制說明(征求意見稿)
- 廣州小學(xué)英語單詞分類識記表-注音版
- 人教版PEP五年級數(shù)學(xué)下冊教案(全冊 完整)
- 窗簾工程方案
- 2024年醫(yī)學(xué)高級職稱-全科醫(yī)學(xué)(醫(yī)學(xué)高級)筆試歷年真題薈萃含答案
- 國防動(dòng)員建設(shè)總體規(guī)劃方案
- 教案檢查總結(jié)及整改措施
- 商品流通學(xué)課件
- 第2課《美麗的“缺牙巴”》課件
- 2024年青島版數(shù)學(xué)五年級下冊第一單元、第二單元測試題及答案(各一套)
- 胃癌術(shù)后化療后護(hù)理查房
評論
0/150
提交評論