4-15 指令的执行结果
已知DS=091DH,SS=1E4AH,AX=1234H,BX=0024H,CX=5678H,BP=0024H SI=0012H,DI=0032H,(09226H)=00F6H,(09228H)=1E40H,(1E4F6H)=091DH。
-
MOV CL,20H[BX][SI]
EA(偏移地址) = BX+20H+SI = 56H
PA = DS*10H+EA = 91D0H + 56H = > C L = F 6 H CL=F6H CL=F6H -
MOV [BP][DI],CX
EA = BP + DI = 56H
PA = SS*10H + EA = 1E4F6H = 5678H -
LEA BX,20H[BX][SI]
MOV AX,2[BX]
LEA指的是 将数据传给寄存器BX = 20H +BX + SI = 0056H
EA = BX + 2 = 58H
PA = DS*10H + EA = 9228H
AX = 9228H = 1E40H -
LDS SI,[BX][DI]
MOV [SI],BX
应该也是将数据传送到 寄存器中
EA = BX+SI = 56H
PA = DS*10H + EA = 9226H
SI = (09226H) = 00F6H
4-19 结果
在实例模式下,假设(DS)=1234H,(SI)==124H,(12464H)=30ABH,(12484H)=464H,有以下程序段:
LEA SI,[SI]
MOV AX,[SI]
MOV [SI+22H],1200H
LDS SI,[SI+20H]
ADD AX,[SI]
上述程序执行后,(DS) = ____,(SI) = ____,(AX) = ____
EA SI,[SI]
把 [ S I ] [SI] [SI]放到SI当中,则 S I = 124 H SI=124H SI=124H
MOV AX,[SI]
PA = DS*10H + SI = 12340H+124H = 12464H
AX = (12464H)= 30ABH
MOV [SI+22H],1200H
PA = SI+22H+DS*10H =12486H
[12486H] = 1200H
LDS SI,[SI+20H]
SI = DS+SI+20H = 12484H
然后再将SI+2赋值给DS
(DS) = SI+2 = 12486H = 1200 H
SI= (12484H) = 464H
ADD AX,[SI]
AX = (12464H) + [SI] = (12486H) + 464H
则AX + [SI] = 350F + 464H = 350F
则(DS = 1200H, SI = 464H , AX = 350F)