12、试分别说明下列各指令中源操作数使用的寻址方式。若操作数是存储器寻址方式,试说明如何确
定有效地址EA。
答:(1)ADD AX,0A51H 立即寻址 ( P.128.)
(2)MOV BL,DATA1 直接寻址 ( P.129.) EA= DATA1 (3)MOV DS,AX 寄存器寻址 ( P.128.)
(4)AND AL,VAR+2 直接寻址 ( P.130.) EA= VAR+2 (5)TEST [SI],CL 寄存器间接寻址 ( P.130.) EA= SI (6)OR ARRY[BX],-1 基址寻址 ( P.131.) EA= ARRY+BX (7)SUB DS:[01FEH],DX 直接寻址 ( P.130.) EA= 01FEH (8)ADC [BP][DI],BH 基址变址寻址 ( P.133.) EA= BP + DI (9)AND CX,-19[BX][SI] 基址变址寻址 ( P.133.) EA= BX + SI (10)PUSH ES 寄存器寻址 ( P.128.) (11)CLC (清进位标志) 寄存器寻址 ( P.128.)
13、试分别指出下列各指令语句的语法是否有错,若有错,指明是什么错误。
答:(1)MOV AL,0F5H 正确
(2)ADD [BX][BP],BX 错误,不能同时使用[BX][BP]进行寻址 ( P.131.) (3)CMP AL,100H 错误,AL为8位,100H大于8位,类型不匹配。 (4)TEST [BP],DL 正确
(5)ADC 15,CL 错误,目的操作数不能是立即数
(6)SUB [DI],DA_WORD 错误,两个操作数不能同时是存储器操作数。( P.136.) (7)OR CH,CL 正确
(8)MOV AL,1000H 错误,AL为8位,1000H为16位,类型不匹配。 (9)SAR 10H[DI],2 错误,AL为8位,移位多次必须CL中。( P.150.) (10)NOT AL,BL 错误,逻辑非操作是单操作指令。( P.149.) (11)DEC CX,1 错误,逻辑非操作是单操作指令。( P.143.)
(12)LEA ES,TAB[BX] 错误,目的寄存器只能是通用寄存器。( P.139.)
14、执行下面2条指令后,标志寄存器中CF、AF、ZF、SF和OF分别是什么状态?
MOV AL,91 ADD AL,0BAH 答: 91H = 10010001
+ 0BAH = 10111010
101001011
CF=1 (有进位) AF=0 (无辅助进位) ZF=0 (结果不为0) SF=0 (符号标志位) OF=1 (有溢出)
15、假设(DS)=091DH,(SS)=1E4AH,(AX)=1234H,(BX)=0024H,(CX)=5678H,(BP)=0024H,
(SI)=0012H,(DI)=0032H,(09226H)=00F6H,(09228H)=1E40H,(1E4F6H)=091DH。试给出下列各指令或程序段的分别执行的结果。 答: (1)
MOV CL,20H[BX][SI]
有效地址EA= 20H+[BX]+[SI] =20H+0024H+0012H=0056H 逻辑地址DS:0056H
物理地址=091D0H+0056H=09226H (逻辑地址左移1为加有效地址) CL=[09226H]=00F6H (2)
MOV [BP][DI],CX
有效地址EA= [BP]+[DI] =0024H+0032H=0056H 逻辑地址SS:0056H
物理地址=1E4A0H+0056H=1E4F6H [1E4F6H]=CX=5678H (3)
LEA BX,20H[BX][SI]
MOV AX,2[BX]
有效地址EA= 20H+[BX]+[SI] =20H+0024H+0012H=0056H BX=0056H
有效地址EA= 2H+[BX]=2H+0056H=0058H 逻辑地址DS:0058H
物理地址=091D0H+0058H=09228H AX=[09228H]=1E40H (4)
LDS SI,[BX][DI]
MOV [SI],BX
有效地址EA= [BX]+[DI] =0024H+0032H=0056H
逻辑地址DS:0056H
物理地址=091D0H+0056H=09226H SI=[09226H]=00F6H
DS=[09226H+2H]=[09228H]=1E40H
有效地址EA= [SI]= 00F6H 逻辑地址DS:00F6H
物理地址=1E400H+00 F6H=1E4F6H [1E4F6H]=BX=0024H (5)
XCHG CX,32H[BX]
XCHG 20H[BX][SI],AX
有效地址EA= 32H+[BX] =32H+0024H=0056H 逻辑地址DS:0056H
物理地址=091D0H+0056H=09226H CX=[09226H]=00F6H [09226H]=5678H
有效地址EA= 20H+[BX]+[SI] =20H+0024H+0012H=0056H 逻辑地址DS:0056H
物理地址=091D0H+0056H=09226H [09226H]= 1234H AX=00F6H