XLAT/XLATB
(transLATe Byte from table)
Преобразование байта
Схема команды: | xlat адрес_таблицы_байтов xlatb |
Назначение: подмена байта в регистре al байтом из последовательности (таблицы) байтов в памяти.
Алгоритм работы:
вычислить адрес, равный ds:bx+(al);
выполнить замену байта в регистре al байтом из памяти по вычисленному адресу.
Несмотря на наличие операнда адрес_таблицы_байтов в команде xlat, адрес последовательности байтов, из которой будет осуществляться выборка байта для подмены в регистре al, должен быть предварительно загружен в пару ds:bx(ebx). Команда xlat допускает замену сегмента.
Состояние флагов после выполнения команды:
выполнение команды не влияет на флаги |
Применение:
Команду xlat можно использовать для выполнения перекодировок символов. Для формирования адреса таблицы в регистрах bx(ebx) можно использовать команду lea или оператор ассемблера offset в команде mov.
table db 'abcdef' int db 0 ;значение индекса ... mov al,3 lea bx,table xlat ;(al)='c' |
См. также: урок 7 и команду