XLAT的问题
ORG 200H
A DB 'AB '
B DD 4DUP(1,2,3)
X LABEL BYTE
Y DW '12 '
分析下列程序段填空
LEA BX,B;
MOV AX,WORD PTR A;
LEA SI,X;
MOV DI, OFFSET Y;
MOV DL,X+1;
AND AL,0FH;
XLAT ;()=__H
请问这个XLAT等于几,请写出详细的解答过程~谢谢
[解决办法]
xlat 就是以 [bx] 以基, AL 为索引, 将索引到的值返回在 AL 中, 和其它都不相关. 在执行 xlat 指令时, AL=1, BX 指向 B 数组, 因此, xlat 将返回 B 数组的第 1 字节的内容. 由于偏址是从 0 开始的, 所以, B DD 4 DUP(1, 2, 3) -> B DB 1, 0, 0, 0, 2, 0, ..... [bx][1] 字节就是 00 了, 1 的话, 应该是 [bx][0], 当然后面的也是如 [bx][12]