
XLAT指令
XLAT指令(Translate)是彙编语言查表指令,英文缩写为XLAT,是一种指令程式。操作是以DS:[BX+AL]为地址,提取存储器中的一个位元组再送入AL。
基本介绍
- 中文名:彙编语言查表指令
- 外文名:XLAT
- 简介:指令程式。
- 内容:表格长度不超过256位元组。
简介
彙编语言查表指令,英文缩写为XLAT,是一种指令程式。
内容
查表指令XLAT (XLAT:位元组查錶转换)。
指令格式:XLAT TABLE 其中TABLE为一待查表格的首地址。
指令功能:把待查表格的一个位元组内容送到AL累加器中。在执行该指令前,应将TABLE先送至BX暂存器中,然后将待查位元组与其在表格中距表首地址位移量送AL,即AL<--((BX)+(AL)). 执行XLAT将使待查内容送到累加器。
该指令又可以称为翻译指令,其运算元是隐含的。在程式设计中,有时要把一种代码转化为另一种代码,如:数字0~9转化为7段显示器件所需要的驱动代码等,就可以採用XLAT指令来实现。
该指令只能是位元组操作,所以表格的最大容量为256位元组。指令不影响标誌位。
举例
例一
X DW 1122H,3344H,5566H,7788H。
LEA BX,X。
MOV AL,03H。
XLAT。
结果AL为33H。
XLAT作用:将((BX)+(AL))送给(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。
; 查表指令 XLAT。
; 即(AL)<--((BX)+(AL)). 执行XLAT将使待查内容送到累加器。 注意:是将bx和al中的值相加再取地址
; 本指令不影响状态标位,表格长度不超过256位元组。
assume cs:code,ds:data。
data segment。
tab db 1000000b,1111001b,0100100b,0110000b。
db 0011001b,0010010b,0000010b,1111000b。
db 0000000b,0010000b,0001000b,0000011b。
db 1000110b,0100001b,0000110b,0001110b。
db 0010110b,0100001b,0010010b,0110000b.
XCODE db 9。
YCODE db ?。
data ends。
code segment。
start:
mov ax,data。
mov ds,ax。
mov bx,offset tab。
mov al,XCODE。
and al,0fH。
xlat 。
mov YCODE,al。
mov ah,4cH。
int 21H。
code ends。
end start。
例三
如图,数据段中存放有一张ASCII码转换表,设首地址为2000H,现欲查出表中第12个代码的ASCII码。
可用如下指令实现:
MOV BX,2000H ;BX←表首地址
MOV AL,0BH ;AL←序号
XLAT ;查錶转换
执行后:AL = 42H
还可用其他方法实现,如:
MOV BX,0BH
MOV AL,[BX+2000H]