XLAT - převod podle převodní tabulky: Porovnání verzí

Z Delphi & Pascal (česká wiki)
Skočit na navigaci Skočit na vyhledávání
 
Řádek 40: Řádek 40:
  
 
;Poznámka
 
;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.
+
: 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


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.