改: MOV BX , DS
MOV ES , BX
5、 MOV CS,AX ; 错
原因:CS、 IP只可以作为源操作数,即不允许给CS、IP寄存器传送数据。
改: MOV AX,CS
6、MOV AL, 050AH;; 错
原因:源操作数和目的操作数的宽度必须相同
改:MOV AX, 050AH
7、MOV SS, 2400H ; 错
原因:立即数不能直接送段寄存器
改:MOV AX, 2400H
8、PUSH AH ; 错
原因:堆栈操作指令PUSH和POP,只能对16位数进行操作,一次压入弹出一个字改:PUSH AX
9、PUSH 2000H ; 错
原因:堆栈操作指令PUSH和POP,必须对寄存器的内容或内存单元的内容进行操作改:PUSH [2000H]
四、简单题
1、若用一个字节来表示带符号数,判断下列各运算在机内进行时是否会产生溢出,写出判断过程。
(1). 5BH+32H; (2). -08H-15H;
答:A. 产生溢出, 5BH=01011011B其补码表示的机器数为:01011011
32H=00110010B其补码表示的机器数为:00110010
相加的结果为:10001101
数值最高位向符号位进位,但符号位向前无进位,故产生溢出。
B. 不产生溢出, -08H=-00001000B其补码表示的机器数为:11111000
-15H=-00010101B其补码表示的机器数为:11101011
相加的结果为:111100011 数值最高位向符号位进位,符号位同时也向前进位,故不产生溢出.
2、分别指出下列指令中的源操作数和目的操作数的寻址方式。
(1)MOV AX,2000H 立即寻址
(2)MOV CX,DATA[SI] 寄存器相对寻址
(3)ADD AX,[BX+DI] 基址变址寻址
(4)AND AX,BX 寄存器寻址
(5)MOV [SI],AX 寄存器间接寻址
(6)MOV AX, [BX+DI+06H] 相对基址变址寻址