Команда перекодировки XLAT преобразует информацию из одного
представления в другое. Команда XLAT преобразует значение в
регистре AL в другое значение, выбираемое из таблицы, на которую
указывает регистр BX. На Фиг.4.4 схематически показано, как
работает эта команда. Регистр BX вместе с выбранным сегментным
регистром определяет точку начала таблицы перекодировки в памяти.
К этому адресу таблицы команда прибавляет содержимое регистра AL,
значение между 0 и 255. Данные, расположенные по этому адресу,
команда XLAT пересылает в регистр AL. Команда XLAT выполняет
операцию просмотра таблицы.
Команду XLAT хорошо использовать при кодировании и
декодировании текстовых данных. С помощью этой команды программа
может организовать простую замену кодов символов. В следующем
примере десять символов кода ASCII от 0 до 9 перекодируются в целях
передачи. Этот метод может использоваться в системе для
перекодировки информации, передаваемой из одной машины в другую.
Когда данные принимаются, другая программа возвращает
закодированные символы к их первоначальному виду. На Фиг. 4.5
демонстрируется кодировка и декодировка.
На Фиг.4.5 изображены две таблицы перекодировки, одна для
передачи, а другая для приема. Чтобы передать значение 5, программа
находит значение 5 в таблице передачи (а), из которой извлекает
значение 6, которое передает. Когда это значение принимается,
программа декодирования ищет 6 в таблице приема (b), чтобы
перекодировать его в истинное значение 5.
На Фиг. 4.6 показана подпрограмма, которая производит это
декодирование. Подпрограмма перекодирования читает начальное
значение из порта ввода=вывода, и возвращает кодированное или
декодированное значение в вызывающую программу через регистр AL.
Одна и та же программа выполняет как кодирова- ние, так и
декодирование, меняя таблицы кодировки.
Сначала подпрограмма читает данные из вводного порта 40H в