精彩网站 http:// www.iquwu.com
(11) CLC ; CF←0
13. 试分别指出下列各指令语句的语法是否有错误,若有错,指明是什么错误。 (1) MOV AL , 0F5H ;√ (2) (2)ADD [BX][BP] , BX ; √ (3) (3)CMP AL , 100H ; √ (4) (4)TEST [BP] , DL ; √
(5) (5)ADC 15H , CL ; × ADC是双操作数指令; 目的地址不能为立即数
(6) (6)SUB [DI] , DA_WORD ; × 源操作数和目的操作数不能同时为存储器操作数 (7) (7)OR CH , CL ; √
(8) (8)MOV AL , 1000H ; × 源操作数和目的操作数类型属性不一致 (9) (9)SAR 10H[DI] , 2 ; √移位次数大于1时, 应由CL指定移位次数
(10) NOT AL , BL ; × NOT 是单操作数指令
(11) (11)DEC CX , 1 ; × DEC是单操作数指令
(12) (12)LEA ES , TAB[BX] ; × LEA指令的目的地址必须是通用寄存器 14. 执行下面2条指令后,标志寄存器中CF,AF,ZF,SF和OF分别是多少? MOV AL , 91 ;91=01011011B ADD AL , 0BAH ; 0BAH=10111010B
15. 假设(DS) = 091DH , (SS) = 1E4AH , (AX) = 1234H , (BX) = 0024H , (CX) = 5678H ,
(BP) = 0024H , (SI) = 0012H , (DI) = 0032H , (09226H) = 00F6H , (09228H) = 1E40H , (1E4F6H) = 091DH . 试给出下列各指令或程序段执行的分别执行的结果.
(1) (1)MOV CL , 20H[BX][SI]
解 : 源操作数的物理地址: (DS)×10H + 20H+(BX)+(SI)
将09226H字节单元的内容送CL,结果(CL) = 00F6H (2) MOV [BP][DI] , CX
解 : 目的操作数的物理地址: (SS)×10H + (BP)+(DI)
21
精彩网站 http:// www.iquwu.com
将CX寄存器的内容传送到1E4F6H字单元 , 结果 (1E4F6H) = (CX) = 5678H (3) (3)LEA BX , 20H[BX][SI] MOV AX , 2[BX]
解 : 执行完第一句指令后,BX的内容为:
第二句指令中,源操作数的物理地址为 EA = (DS)×10H+2+(BX)
将09228H字单元的内容送AX寄存器 , 结果 (AX) = 1E40H (4)LDS SI , [BX][DI] MOV [SI] , BX
解 : 第一句指令中源操作数的逻辑地址为 DS:(BX)+(DI) 其偏移量为 (BX)+(DI) = 0024H+0032H = 0056H, 执行完第一句指令后, (SI) = 0056H 第二句指令中,源操作数的物理地址为
(DS)×10H+(SI) = 091D0H+0056H = 09226H 将BX寄存器的内容送09226单元 , 结果 (09226H) = (BX) = 0024H (5)(5)XCHG CX , 32H[BX]
XCHG 20H[BX][SI] , AX
解 : 第一句指令中源操作数的物理地址为 (DS) × 10H+32H+(BX)= 09226H
09226H字单元和CX寄存器的内容交换,结果 (CX) = 00F6H ,(09226H) = 5678H 第二句指令中目的操作数的物理地址为 (DS) × 10H++20H+(BX)+(SI) = 09226H
22
精彩网站 http:// www.iquwu.com
09226H字单元和寄存器AX的内容交换, 结果 (09226H) = 1234H , (AX) = 5678H 16. 假设(SS)=0915H , (DS) = 0930H , (SI) = 0A0H , (DI) = 1C0H , (BX) = 80H , (BP) = 470H . 现有一指令“MOV AX , OPRD”, 若源操作数的物理地址为095C0H , 试用4种不同寻址方式改写此指令,并要求至少使用上述条件一次. 解: 源操作数的物理地址与DS段基址的差为 095C0H – 09300H = 2C0H
① MOV AX , 100H[DI] ; 源操作数的物理地址为: (DS)×10H+100H+(DI) = 09300H + 100H + 1C0H =095C0H ② MOV AX , 220H[SI] ; 源操作数的物理地址为: (DS)×10H+220H+(SI) = 09300H + 220H + 0A0H =095C0H ③ MOV AX , 240H[BX] ; 源操作数的物理地址为: (DS)×10H+240H+(BX) = 09300H + 240H + 080H =095C0H ④ MOV AX , 1A0H[SI][BX] ;源操作数的物理地址为:
(DS)×10H+0A0H+(SI)+(BX) = 09300H + 1A0H + 0A0H +080H = 095C0H
18. 假设(AX)=0A5C6H , (CX) = 0F03H , 则下列4条指令执行后 , (AX) = 81C6H , CF= 1 .
STC ; CF = 1
RCL AX , CL ; AX= 0010 1110 0011 0110 , CF = 1 AND AH , CH ; AH = 0000 1110 , CF = 0
RCR AX , CL ; AX = 1000 0001 1100 0110, CF = 1
19. 假设(AX) = 0FC77H , (CX) = 504H , 则下列4条指令执行后 , (AX) = , CF = . CLC ; CF = 0
SAR AX , CL ; (AX) = 1111 1111 1100 0111 , CF = 0 XCHG CH , CL ; (CX) = 405H
SHL AX , CL ; (AX) = 1111 1000 1110 0000 ,CF = 1 20. 假设(AX) = 1234H , (BX) = 0FFFFH , 则下述3条指令执行后 , (AX) = 1236H , (BX) = 0001H . INC AX ; (AX) = 1235H
NEG BX ; (BX) = 0000 0000 0000 0001B = 0001H
23
精彩网站 http:// www.iquwu.com
ADD AX , BX ; (AX) = 1236H
21. 假设(AX) = 0FFFFH , 则下述程序段执行后 , (AX) = 0001H .
INC AX ; (AX) = 0000H
NEG AX ; (AX) = 0000 0000 0000 0001B = 0000H DEC AX ; (AX) = 0FFFFH NEG AX ; (AX) = 0001H 22. 假设(BX) = 12FFH , 则下述程序段执行后 ,
(BX) = 0012H , ZF = 0 , CF = 0 . MOV CL , 8 ;(CL)=8
ROL BX , CL ;(BX) = 1111 1111 0001 0010B = 0FF12H AND BX , 0FFH ; (BX) = 0012H
CMP BX , 0FFH ; (BX) = 0012H CF=0 ,ZF=0 解: ① 第一句指令执行后 , (CL)=8
② 第二句指令执行后 , (BX) = 1111 1111 0001 0010B = 0FF12H
③ 第三句指令执行后 , (BX) = 0012H
④ 第四句指令执行后 , (BX) = 0012H CF=0 ,ZF=0
23. 假设(AX) = 0B55BH , (DX) = 0F0FH , 则下述程序段执行后 , (AX) = 0FBABH.
AND AH , DL ; (AX) = 055BH XOR AL , DH ;(AX) = 0554H
NEG AH ;(BX) = 1111 1011 0101 0100B = 0FD54H NOT AL ; (AX) = 1111 1011 1010 1011H = 0FBABH 24. 假设(AX) = 0FF60H , 则下述程序段执行后 , (AX) = 0 , CF = 0 . STC ; CF = 1
MOV DX , 96 ; (DX) = 0060H
24
精彩网站 http:// www.iquwu.com
XOR DH , 0FFH ; (DX) = 1111 1111 0110 0000B = 0FF60H SBB AX , DX ; (AX) = 0
25. 假设(AL) = 08H , (BL) = 07H , 则下列程序段执行后 , (AH) = 01H , (AL) = 05H , CF = 1 . ADD AL , BL AAA
26. 假设DF=0 , (DS:0100H) = 01A5H , 则下述程序段执行后, (AL) = 0A5H , SI = 0102H .
MOV SI , 0100H LODSW
解: LODSW指令的功能: ① AX← (DS:(SI)) ② SI← (SI)±1或2 ③ 对标志位无影响
执行后 , (AX) = 01A5H , 即(AL) = 0A5H , (SI) = 0102H
28. 试按下列要求分别编制程序段: (1) (1)把标志寄存器符号位置“1”. 解: LAHF
OR 10000000B SAHF
(2) (2)寄存器AL中高低4位互换. 解: MOV CL , 4 ROL AL , CL 或 MOV CL , 4 ROR AL , CL
(3)假设有3个字存储单元A,B,C,Z在不使用ADD和ADC指令的情况下,实现
25