汇编指令xlat

汇编指令xlat,第1张

我给你举个例子:

比如在数据段里定义以下数据:

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点回答的,看了几个小时的动画片脑子有点乱了

-

-

XLAT是查表指令,将BX指向表的首地址,AL中放得是要做相互转换的参数,比如说如下程序段:

BUF DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

LEA BX,BUF

MOV AL,01H

XLAT

再送去数码管显示,就会显示出“1”了,也就是说XLAT可以用于码制转换。

扩展资料:

查表指令XLAT (XLAT:字节查表转换)。

指令格式:XLAT TABLE 其中TABLE为一待查表格的首地址。

指令功能:把待查表格的一个字节内容送到AL累加器中。在执行该指令前,应将TABLE先送至BX寄存器中,然后将待查字节与其在表格中距表首地址位移量送AL,即AL<--((BX)+(AL)). 执行XLAT将使待查内容送到累加器。

参考资料来源:百度百科-XLAT指令


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11788732.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存