标志寄存器 XLAT指令的内容?
XLAT指令的内容?
查找指令xlat(xlat:字节查找转换)。指令格式:xlattable,其中table是要查找的表的第一个地址。指令功能:将要查找的表的一个字节发送给Al累加器。在执行指令之前,表应该被发送到BX寄存器,然后要检查的字节和它从表中第一个地址的位移应该被发送到Al,即Al<--((BX)(Al))。执行xlat将把要检查的内容发送给累加器。此指令也称为转换指令,其操作数是隐式的。在程序设计中,有时需要将一种代码转换成另一种代码,如将数字0~9转换成七段显示设备所需的驱动程序等,可以通过xlat指令来实现。该指令只能进行字节运算,因此表的最大容量为256字节。指令不影响标志位。
汇编语言XLAT指令的使用方法?
Xlat是一个表查找指令,它将BX指向表的第一个地址。要转换的参数放在al中。例如,下列程序段buf DB 3fh、06h、5bh、4fh、66h、6dh、7dh、07h、7FH、6fh lea BX、buf mov al、01h xlat被送到数码管显示,并显示“1”。
也就是说,xlat可以用于代码系统转换
x DW 1122h、3344h、5566h、7788h
lea BX、x
mov Al、03h
xlat
结果Al为33H
xlat函数:send((BX)(Al))to(Al)--简单:将BX的第一个地址和Al的偏移地址的内容发送到Al。
运行xlat之前,Al=3 BX=(x的第一个地址)
那么BX Al是33。。。为什么?注意高位地址放在下面
也就是说
-
22-----BX点在这里
11
44
33-----偏移地址Al是3的位置
-
xlat x
在执行xlat之前,首先将X的地址发送给BX,并将偏移时间发送给al。
xlat是搜索指令(一个字节)
XLAT指令的用法,能不能简单的说一下?
xlat是表查找指令,它将BX指向表的第一个地址,al将参数放入以进行相互转换。例如,将下列程序段bufdb3fh、06h、5bh、4fh、66h、6dh、7dh、07h、7FH、6fhleabx、bufmoval、01hxlat发送到数码管进行显示,并显示“1”。也就是说,xlat可以用于代码转换
让我给你举个例子:
例如,在一个数据段中定义以下数据:
数据段
xx1 DB?
XX2分贝?
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对于快速数据转换非常有用
另外,Xlat SS:[BP]你说的bluewander我试过了。编译之后,它仍然是xlat。Xlat似乎忽略了所有的操作数。我查了一下说明书,好像没有你说的表格?]我昨晚两点钟回答。看了几个小时的动画片后,我有点困惑-
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。