XLAT指令

XLAT指令

XLAT指令(Translate)是彙編語言查表指令,英文縮寫為XLAT,是一種指令程式。操作是以DS:[BX+AL]為地址,提取存儲器中的一個位元組再送入AL。

簡介

彙編語言查表指令,英文縮寫為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]

相關詞條

相關搜尋

熱門詞條

聯絡我們