汇编语言中XLAT查表指令的使用
如何正确使用查表指令XLAT ?
XLAT指令简介
①功能:完成一个字节的查表转换功能。将DS:[BX+AL]指向的字节单元的内容送给AL。其中,BX存放的是DS段内表首元素的偏移地址,AL存放的是表内元素相对于表首的偏移
量。(可以看作是对一维数组的访问)
②说明:使用该指令需要先在数据段中建立一张字节类型的表,该表的最大长度为256字节。
简单举个例子
- 建立一个字符数组,其中为26个大写英文字 母,使用XLAT指令,获取其中的字母“z”,并进行输出
data segment arr db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax mov es,ax lea bx,arr mov al,25 xlat ;把al中的值变为[bx+al],即al地址变为bx+al mov dl,al mov ah,2 int 21h mov ax,4ch int 21h ends end start
实例:
设计程序(非子程序实现)利用XLAT指令把十六进制数转换成ASCII码。假设ASCII码存放在以DAT1为首地址的数据区中,对应的16进制数放在以DAT2为首地址的数据区中,转换结果送以DAT3为首地址的数据区中。分析:在数据区中建立所需要的ASCII码表。在非子程序结构中直接使用。
DATA SEGMENT DAT1 DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H DAT2 DB 5 DAT3 DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA BX,DAT1;将表首地址送给BX MOV AL,DAT2 ;将偏移量送给AL XLAT MOV DAT3,AL MOV AH,4CH INT 21H CODE ENDS END START
查表程序设计
到此这篇关于汇编语言中XLAT查表指令的使用的文章就介绍到这了,更多相关汇编语言XLAT查表指令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
最新评论