標(biāo)志寄存器 XLAT指令的內(nèi)容?
XLAT指令的內(nèi)容?查找指令xlat(xlat:字節(jié)查找轉(zhuǎn)換)。指令格式:xlattable,其中table是要查找的表的第一個(gè)地址。指令功能:將要查找的表的一個(gè)字節(jié)發(fā)送給Al累加器。在執(zhí)行指令之前,
XLAT指令的內(nèi)容?
查找指令xlat(xlat:字節(jié)查找轉(zhuǎn)換)。指令格式:xlattable,其中table是要查找的表的第一個(gè)地址。指令功能:將要查找的表的一個(gè)字節(jié)發(fā)送給Al累加器。在執(zhí)行指令之前,表應(yīng)該被發(fā)送到BX寄存器,然后要檢查的字節(jié)和它從表中第一個(gè)地址的位移應(yīng)該被發(fā)送到Al,即Al<--((BX)(Al))。執(zhí)行xlat將把要檢查的內(nèi)容發(fā)送給累加器。此指令也稱(chēng)為轉(zhuǎn)換指令,其操作數(shù)是隱式的。在程序設(shè)計(jì)中,有時(shí)需要將一種代碼轉(zhuǎn)換成另一種代碼,如將數(shù)字0~9轉(zhuǎn)換成七段顯示設(shè)備所需的驅(qū)動(dòng)程序等,可以通過(guò)xlat指令來(lái)實(shí)現(xiàn)。該指令只能進(jìn)行字節(jié)運(yùn)算,因此表的最大容量為256字節(jié)。指令不影響標(biāo)志位。
匯編語(yǔ)言XLAT指令的使用方法?
Xlat是一個(gè)表查找指令,它將BX指向表的第一個(gè)地址。要轉(zhuǎn)換的參數(shù)放在al中。例如,下列程序段buf DB 3fh、06h、5bh、4fh、66h、6dh、7dh、07h、7FH、6fh lea BX、buf mov al、01h xlat被送到數(shù)碼管顯示,并顯示“1”。
也就是說(shuō),xlat可以用于代碼系統(tǒng)轉(zhuǎn)換
x DW 1122h、3344h、5566h、7788h
lea BX、x
mov Al、03h
xlat
結(jié)果Al為33H
xlat函數(shù):send((BX)(Al))to(Al)--簡(jiǎn)單:將BX的第一個(gè)地址和Al的偏移地址的內(nèi)容發(fā)送到Al。
運(yùn)行xlat之前,Al=3 BX=(x的第一個(gè)地址)
那么BX Al是33。。。為什么?注意高位地址放在下面
也就是說(shuō)
-
22-----BX點(diǎn)在這里
11
44
33-----偏移地址Al是3的位置
-
xlat x
在執(zhí)行xlat之前,首先將X的地址發(fā)送給BX,并將偏移時(shí)間發(fā)送給al。
xlat是搜索指令(一個(gè)字節(jié))
XLAT指令的用法,能不能簡(jiǎn)單的說(shuō)一下?
xlat是表查找指令,它將BX指向表的第一個(gè)地址,al將參數(shù)放入以進(jìn)行相互轉(zhuǎn)換。例如,將下列程序段bufdb3fh、06h、5bh、4fh、66h、6dh、7dh、07h、7FH、6fhleabx、bufmoval、01hxlat發(fā)送到數(shù)碼管進(jìn)行顯示,并顯示“1”。也就是說(shuō),xlat可以用于代碼轉(zhuǎn)換
讓我給你舉個(gè)例子:
例如,在一個(gè)數(shù)據(jù)段中定義以下數(shù)據(jù):
數(shù)據(jù)段
xx1 DB?
XX2分貝?
Table DB“txsb”
data ends
然后執(zhí)行以下指令:
](MOV ax,data MOV DS,ax,我不會(huì)寫(xiě)出來(lái),你知道段寄存器指向數(shù)據(jù)段)
MOV Al,0
MOV BX,offset Table
xlat
執(zhí)行后,Al中的數(shù)據(jù)是t的ASCII碼。如果前一個(gè)Al是1,執(zhí)行后,Al中的數(shù)據(jù)是X的ASCII碼,2是s,3是b
xlat稱(chēng)為換碼指令。顧名思義,必須改變。事實(shí)上,它的功能是將一個(gè)數(shù)據(jù)轉(zhuǎn)換為另一個(gè)數(shù)據(jù),前提是轉(zhuǎn)換后的數(shù)據(jù)和預(yù)轉(zhuǎn)換后的數(shù)據(jù)之間沒(méi)有相應(yīng)的邏輯沒(méi)有人關(guān)心您是否要使用xlat。例如,txsb的ASCII碼與0、1、2、3之間沒(méi)有對(duì)應(yīng)關(guān)系。Xlat對(duì)于快速數(shù)據(jù)轉(zhuǎn)換非常有用
另外,Xlat SS:[BP]你說(shuō)的bluewander我試過(guò)了。編譯之后,它仍然是xlat。Xlat似乎忽略了所有的操作數(shù)。我查了一下說(shuō)明書(shū),好像沒(méi)有你說(shuō)的表格?]我昨晚兩點(diǎn)鐘回答??戳藥讉€(gè)小時(shí)的動(dòng)畫(huà)片后,我有點(diǎn)困惑-