XLAT - převod podle převodní tabulky

Z Delphi & Pascal (česká wiki)
Verze z 21. 1. 2013, 17:43, kterou vytvořil Zdeno Sekerák (diskuse | příspěvky)
(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
Délka translační tabulky může být i menší než 256 bytů. Operand translation_table je nepovinný protože registr BX musí být před provedením instrukce XLAT stejně naplněn ukazatelem na tabulku.