汇编语言中XLAT查表指令的使用

 更新时间:2024年03月26日 10:27:34   作者:普通网友  
XLAT指令是汇编语言查表指令,本文主要介绍了汇编语言中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查表指令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • UEFI开发实战用户交互界面使用说明VFR文件

    UEFI开发实战用户交互界面使用说明VFR文件

    这篇文章主要为大家介绍了UEFI开发实战用户交互界面使用说明VFR文件,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • 汇编语言指令集学习条件转移指令详解

    汇编语言指令集学习条件转移指令详解

    这篇文章主要为大家介绍了汇编语言指令集学习条件转移的指令全面总结详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-11-11
  • 汇编语言位向量(位映射)的实现

    汇编语言位向量(位映射)的实现

    这篇文章主要介绍了汇编语言位向量(位映射)的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Visual Studio-X64汇编编写方法

    Visual Studio-X64汇编编写方法

    本文介绍了在Visual Studio中配置64位汇编环境和C++与汇编的混合编程的方法,详细说明了设置平台工具集、生成依赖项、链接器等步骤,并提供了解决可能出现的编译错误的方案,感兴趣的朋友跟随小编一起看看吧
    2024-09-09
  • 在vs2017中编写汇编的实现(图文)

    在vs2017中编写汇编的实现(图文)

    这篇文章主要介绍了在vs2017中编写汇编的实现(图文),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • asm基础——汇编指令之in/out指令

    asm基础——汇编指令之in/out指令

    这篇文章主要介绍了asm基础——汇编指令之in/out指令,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • 汇编实现简单选择排序的方法示例

    汇编实现简单选择排序的方法示例

    这篇文章主要介绍了汇编实现简单选择排序的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • 汇编中的数组分配和指针的实现代码

    汇编中的数组分配和指针的实现代码

    这篇文章主要介绍了汇编中的数组分配和指针的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • 汇编语言系列之汇编实现各种码制的转换(思路详解)

    汇编语言系列之汇编实现各种码制的转换(思路详解)

    本文列出了十六进制转二进制、十进制、ASCII码及大小写字母转换的代码,对汇编语言系列之实现各种码制的转换问题感兴趣的朋友跟随小编一起看看吧
    2021-11-11
  • 浅析shellcode 反汇编模拟运行及调试方法

    浅析shellcode 反汇编模拟运行及调试方法

    这篇文章主要介绍了shellcode 反汇编,模拟运行以及调试方法,本文给大介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02

最新评论