Разделы:


Best links:

Команды пересылки данных

Команда IN служит для пересылки данных (байта или слова) из порта ввода в аккумулятор (в AL или АХ). Номер порта ввода может быть задан как непосредственно, во втором байте команды, так и косвенно, в регистре DX, причем только регистр DX из всех РОН может использоваться для этой цели. Если первый формат команды ввода позволяет адресоваться к 256 портам, то второй - к 216 = 65536 портам. Косвенное задание порта хотя и требует предварительной загрузки его номера в DX, однако позволяет организовывать программные циклы, в которых используется изменяющийся номер портов ввода.

Команда OUTслужит для пересылки данных (байта или слова) из аккумулятора (из ALили АХ) в порт вывода. Эта команда, как и команда IN, имеет два формата, которые определяют способ адресации порта вывода. Преимущества и недостатки использования каждого из форматов определяются теми же соображениями, что и для команды IN.

Команда XLATосуществляет табличное преобразование кодов. Таблица размером не более 256 байт размещается в памяти, а ее начальный адрес - в регистре ВХ. При выполнении этой команды содержимое AL используется в качестве относительного адреса строки таблицы, из которой байт пересылается в AL.

Пересылки адреса операнда. Включают три команды: LEA(загрузить исполнительный адрес), LDS(загрузить указатель в DS) и LES (загрузить указатель в ES). Эти команды служат средством управления механизмом адресации операндов.

По команде LEA извлекается не сам операнд, а его исполнительный адрес ЕА. Действие команды состоит в передаче вычисленного 16-разрядного адреса операнда в 16-разрядный регистр, код которого указан в поле reg. Использование команды LEA удобно при составлении подпрограмм, работающих с параметрами. В этом случае перед вызовом подпрограммы выделенный регистр загружается адресом переменной, которая предварительно записана в память в качестве параметра. Например, подпрограмма оперирует с параметром, адрес которого содержится в РОН ВХ. Если перед вызовом этой подпрограммы выполнить команду LEA BX, ALPHA, где ALPHA - имя ячейки памяти, содержащей переменную, то подпрограмма будет использовать в качестве параметра переменную из ячейки ALPHA. Если же перед вызовом подпрограммы выполнить команду LEA BX, BETA, то в качестве значения параметра подпрограмма будет использовать значение переменной из ячейки с именем BETA.

предыдущаяследующая