XLAT 字节查表转换.//这里XLAT这个是那个单词的缩写??
发布网友
发布时间:2024-01-04 08:52
我来回答
共3个回答
热心网友
时间:2024-02-27 01:01
我给你举个例子:
比如在数据段里定义以下数据:
data segment
XXX1 db ?
XXX2 db ?
table db 'TXSB'
data ends
然后执行下面的指令:
(mov ax,data mov ds,ax 我就不写出来了,你知道段寄存器指向数据段就行了)
mov al,0
mov bx,offset table
xlat
执行之后,AL中的数据就是T的ASCII码了,如果前面的AL中的值为1的话那么执行之后AL中就是X的ASCII码,2就是S,3就是B
XLAT叫做换码指令,顾名思义,它肯定要换,其实它的作用就是将一个数据换成另一个数据,前提是转换后和转换前的数据没有对应的逻辑关系,当然有关系的你愿意用xlat也没人管你,比如上面的TXSB的ASCII码和0,1,2,3就没有对应的关系,xlat对于快速转换数据是非常有用的
另外 BlueWanderer 你说的那个 xlat ss:[bp] 我试了一下,编译之后还是xlat啊?xlat好像会忽略所有的操作数吧?我查指令参考好像也没有你说的那种形式啊?
---------------------------------------
哦,我是用masm5试的,用masm6试了一下出来段了
xlat好像确实没用了
因为现在的CPU可以执行这条指令了:
mov eax,[ebx+eax]
昨天晚上2点回答的,看了几个小时的动画片脑子有点乱了 - -
热心网友
时间:2024-02-27 01:02
Table Look-up Translation,不是严格按单词缩写来的。
热心网友
时间:2024-02-27 01:02
后面LAT应该是 Load AL from Table