Табличное преобразование

Опубликовано в Архитектура процессора Intel

XLAT (table look up transLATion) — табличное преобразование.

Команда XLAT — безадресная команда, т.к. использует неявную адресацию операндов.

Действие команды состоит в следующем. К содержимому регистра ВХ прибавляется содержимое регистра AL, и эта сумма используется для обращения к сегменту данных как внутрисегментное смещение. Из сегмента данных выбирается байт, который помещается в регистр AL. Эту команду обычно используют для преобразования символьных данных из одного кода в другой. Для этой цели в памяти, точнее в сегменте данных, предварительно формируется таблица перекодирования, начальный адрес которой загружается в регистр ВХ. В AL загружается перекодируемый символ. Значение этого символа используется как смещение относительно начального адреса из ВХ в таблице перекодирования. По этому адресу реализуется выборка символа в новом коде, загружаемого в AL.

Табличное преобразование

Графическое представление действий команды XLAT приведено на рисунке ниже.

Значения флагов не меняются.

Так как в одном байте перекодируемого символа может быть представлено 256 комбинаций, то наибольшая длина таблицы перекодирования составляет 256 байт.

Однократное применение команды XLAT позволяет перекодировать лишь один символ. Для перекодирования строки символов необходимо организовать программный цикл.