XLAT - převod podle převodní tabulky

Z Delphi & Pascal (česká wiki)
Verze z 21. 1. 2013, 17:13, kterou vytvořil Zdeno Sekerák (diskuse | příspěvky) (Vytvorená stránka „;Instrukce : XLAT - převod podle převodní tabulky ;Časování : 5 ;Popis : Instrukce XLAT provádí translaci byte v AL pomoci převodní tabulky (lookup ...“)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)
Skočit na navigaci Skočit na vyhledávání
Instrukce
XLAT - převod podle převodní tabulky
Časování
5
Popis
Instrukce XLAT provádí translaci byte v AL pomoci převodní tabulky (lookup table). Ukazatel na 256 bytovou převodní tabulku je zaveden do BX. Byte který má být převeden je umístěn v AL slouží jako index do převodní tabulky. Po provedení instrukce XLAT je byte v AL nahrazen bytem který odpovídá bytu vzdálenému AL-bytu od začátku převodní tabulky.


Syntaxe
XLAT translation_table


Ovlivňuje příznaky
žádné


Nedefinované příznaky
žádné


Výjimky v privilegovaném módu
Jestliže registry CS, DS nebo ES obsahují neplatné efektivní adresy operandu je generovaná všeobecná výjimka porušení ochrany paměti. Jestliže SS obsahuje neplatnou adresu je generovaná výjimka "chyba zásobníku".


Výjimky v reálnem módu
Jestliže je slovní operand umístěn na offsetu 0FFFFH je generováno přerušení INT 13.


Poznámka pro 80386
Šírka slova je 32 bitů.


Příklad
LEA BX, MYTABLE   ; umisteni tabulky
MOV AL, INDEX     ; offset do tabulky
XLAT MYTABLE      ; hodnota z tabulky vracena v AL


Poznámka

Delka translacni tabulky muze byt i mensi nez 256 bytu. Operand translation_table je nepovinny, protoze registr BX musi byt pred provedenim instrukce XLAT stejne naplnen ukazatelem na tabulku.