XLAT - převod podle převodní tabulky: Porovnání verzí
Skočit na navigaci
Skočit na vyhledávání
(Není zobrazena jedna mezilehlá verze od stejného uživatele.) | |||
Řádek 39: | Řádek 39: | ||
− | + | ;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. |
[[Category:Assembler]] | [[Category:Assembler]] | ||
[[Category:Instrukce mikroprocesoru 80386]] | [[Category:Instrukce mikroprocesoru 80386]] |
Aktuální verze z 21. 1. 2013, 17:43
- 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