XLAT - převod podle převodní tabulky
Verze z 21. 1. 2013, 17:41, kterou vytvořil Zdeno Sekerák (diskuse | příspěvky)
- 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.