Команды IN и OUT
Рубрика: Архитектура PC
(Команды CPU)
9777
Опубликовано: 04.05.2017
Команды IN и OUT используются для работы с внешними устройствами через порты ввода-вывода. Команда IN принимает данные из порта, а команда OUT записывает данные в порт. Номер порта может задаваться как числом от 0 до 255, так и значением регистра от 0 до 65535. Читать из порта или записывать в порт можно как 8-битные, так и 16- и 32-битные данные.
Команда IN
Синтаксис: | IN op1,op2 |
Операнды: | op1 - AL, AX, EAX op2 - i8, DX |
Назначение: | Ввод из порта |
Процессор: | 8086+ |
Флаги: | Не изменяются |
Комментарий: | Команда IN пересылает байт, слово или двойное слово из заданного числом во втором операнде порта в регистр (AL, AX или EAX), заданный первым операндом. Доступ к любому порту от 0 до 65535 выполняется путем помещения номера порта в регистр DX и использования команды IN с регистром DX в качестве второго параметра. Эти команды ввода/вывода могут быть несколько короче при использовании ввода/вывода через 8-битовый порт в команде. Старшие восемь битов адреса порта при использовании ввода/вывода через 8-битовый порт будут равны 0. |
Ограничения: | Нет |
Примеры: |
mov dx,03DFh in al,dx in ax,60h |
Команда OUT
Синтаксис: | OUT op1,op2 |
Операнды: | op1 - i8, DX op2 - AL, AX, EAX |
Назначение: | Ввод из порта |
Процессор: | 8086+ |
Флаги: | Не изменяются |
Комментарий: | Команда OUT пересылает байт, слово или двойное слово из заданного вторым операндом регистра (AL, AX или EAX) в выходной порт, номер которого задан первым операндом. Доступ к любому порту от 0 до 65535 выполняется путем помещения номера порта в регистр DX и использования команды OUT с регистром DX в качестве первого операнда. Если команда содержит идентификатор 8-битового порта, то значение расширяется нулем до 16 битов. |
Ограничения: | Нет |
Примеры: |
sub ax,ax mov dx,03DFh out dx,ax out 60h,al |
Комментарии (0)