1、试指出下列指令中的源操作数与目的操作数寻址方式:
(1) MOV SI,100
(2) MOV BP,AX
(3) MOV [SI],1000
(4) MOV BP,[SI]
(5) LDS DI,[2130H]
(6) AND DI,[BX+SI+20H]
(7) JMP 1234H (8)HLT
(9) ADD SI,[BX]
(10) MOV [BX+100],DI
答案
(1)源操作数为立即数寻址方式,目的操作数为寄存器寻址方式。
(2)源操作数和目的操作数均为寄存器寻址方式。
(3)源操作数为立即数寻址方式,目的操作数为寄存器间接寻址方式。
(4)源操作数为寄存器间接寻址方式,目的操作数为寄存器寻址方式。
(5)源操作数为直接寻址方式,目的操作数为寄存器寻址方式。
(6)源操作数为相对的基址加变址寻址方式,目的操作数为寄存器寻址方式。
(7)这是程序转移段内直接寻址方式。
(8)无寻址方式。
(9)源操作数为寄存器间接寻址方式,目的操作数为寄存器寻址方式。
(10)源操作数为寄存器寻址方式,目的操作数为寄存器相对寻址方式。
2、指出下列传送指令中,哪些是非法指令:
(1) MOV DS,0100H
(2) MOV BP,AL
(3) MOV BX,AL
(4) XCHG AH,AL
(5) OUT 21H,AL
(6) OUT 310,AL
(7) MOV [BP+DI],AX
(8) MOV [BX+CX],2130H
(9) AND AX,BL
(10) ADD AL,[BX+DX+10]
答案
(1)非法,不能直接向DS中送立即数,要实现该语句的功能应改为:
MOV AX, 0100H
MOV DS,AX
(2)非法,源操作数和目的操作数的类型不同。应改为:
MOV BP,AX
(3)非法,源操作数和目的操作数的类型不同。应改为:
MOV BX,AX
(4)合法。 (5)合法。
(6)非法。 (7)合法。
(8)非法。
(9)非法。源操作数和目的操作数的类型不同。应改为:
AND AX,BX
(10)非法。
在上面的指令中,(1),(2),(3),(6),(8),(9),(10)都是非法指令。
3、假设
(AX)=2000H
(BX)=1200H
(SI)=0002H
(DI)=0003H
(DS)=3000H
(SS)=3000H
(SP)=0000H
(31200H)=50H
(31201H)=02H
(31202H)=0FH
(31203H)=90H
请写出在下列个条指令独立执行完后,有关寄存器及存储单元