Команда XLATB


Команда XLATB в Ассемблере выполняет замену (подмену) байта в регистре AL байтом из таблицы - последовательности байтов в памяти. Синтаксис:

XLATB

Команда XLATB не имеет операндов. Никакие флаги при выполнении команды не изменяются.

С помощью этой команды можно, например, выполнять перекодировку символов, подменяя код в регистре AL кодом из таблицы в памяти. Адрес таблицы должен находиться здесь:

DS:[BX + беззнаковый AL]

Алгоритм работы команды XLATB:

  • вычислить адрес, равный DS:BX+(AL)
  • выполнить замену байта в регистре AL байтом из памяти по вычисленному адресу.

Пример на ассемблере:

  .model  tiny
  .code
  ORG     100h
                                        
  LEA  BX, TABLE  ;ВХ - адрес TABLE                   
  MOV  AL, 2      ;DS:BX = DS:[адрес TABLE + 2]
  XLATB           ;AL = 43h (код исмвола C)
 	
  RET             ;Выйти из программы
  
TABLE DB 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

Здесь мы сначала записываем в ВХ адрес последовательности байтов - таблицы TABLE. Затем в регистр AL записываем адрес символа из этой таблицы. Поскольку адресация начинается с нуля, то символ с адресом 2 - это 3-й символ в этой таблице, то есть символ С.

Затем выполняем команду XLATB, которая в регистр AL записывает ASCII-код третьего символа из таблице - число 43h.

Таким образом код 2h мы преобразовали в код 43h. Ну а что со всем этим делать - это уже вам подскажет ваше воображение.

Напоследок, как всегда, о происхождении аббревиатуры XLATB.

XLATB - это transLATe Byte from table (преобразовать байт из таблицы).



Первые шаги в программирование Первые шаги в программирование

Главный вопрос начинающего программиста – с чего начать? Вроде бы есть желание, но иногда «не знаешь, как начать думать, чтобы до такого додуматься». У человека, который никогда не имел дело с информационными технологиями, даже простые вопросы могут вызвать большие трудности и отнять много времени на решение. Подробнее...

Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

Яндекс.Метрика