匯編語言中XLAT查表指令的使用
如何正確使用查表指令XLAT ?
XLAT指令簡介
①功能:完成一個字節(jié)的查表轉(zhuǎn)換功能。將DS:[BX+AL]指向的字節(jié)單元的內(nèi)容送給AL。其中,BX存放的是DS段內(nèi)表首元素的偏移地址,AL存放的是表內(nèi)元素相對于表首的偏移
量。(可以看作是對一維數(shù)組的訪問)
②說明:使用該指令需要先在數(shù)據(jù)段中建立一張字節(jié)類型的表,該表的最大長度為256字節(jié)。
簡單舉個例子
- 建立一個字符數(shù)組,其中為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中的值變?yōu)閇bx+al],即al地址變?yōu)閎x+al
mov dl,al
mov ah,2
int 21h
mov ax,4ch
int 21h
ends
end start
實例:
設(shè)計程序(非子程序?qū)崿F(xiàn))利用XLAT指令把十六進制數(shù)轉(zhuǎn)換成ASCII碼。假設(shè)ASCII碼存放在以DAT1為首地址的數(shù)據(jù)區(qū)中,對應(yīng)的16進制數(shù)放在以DAT2為首地址的數(shù)據(jù)區(qū)中,轉(zhuǎn)換結(jié)果送以DAT3為首地址的數(shù)據(jù)區(qū)中。分析:在數(shù)據(jù)區(qū)中建立所需要的ASCII碼表。在非子程序結(jié)構(gòu)中直接使用。
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
查表程序設(shè)計




到此這篇關(guān)于匯編語言中XLAT查表指令的使用的文章就介紹到這了,更多相關(guān)匯編語言XLAT查表指令內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解匯編語言中中括號[]作用及l(fā)ea和mov指令的區(qū)別
這篇文章主要介紹了匯編語言中中括號[]作用及l(fā)ea和mov指令的區(qū)別,本文分步驟給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-01-01
Windows10下利用DOSBOX和MASM32搭建匯編語言開發(fā)環(huán)境
這篇文章主要介紹了Windows10下利用DOSBOX和MASM32搭建匯編語言開發(fā)環(huán)境,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-01-01
匯編語言指令集學(xué)習(xí)條件轉(zhuǎn)移指令詳解
這篇文章主要為大家介紹了匯編語言指令集學(xué)習(xí)條件轉(zhuǎn)移的指令全面總結(jié)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步2021-11-11
匯編語言系列之匯編實現(xiàn)各種碼制的轉(zhuǎn)換(思路詳解)
本文列出了十六進制轉(zhuǎn)二進制、十進制、ASCII碼及大小寫字母轉(zhuǎn)換的代碼,對匯編語言系列之實現(xiàn)各種碼制的轉(zhuǎn)換問題感興趣的朋友跟隨小編一起看看吧2021-11-11

