Справочник по языку Ассемблера IBM PC

     

IN


(INput operand from port)

Ввод операнда из порта

 

Схема команды:  in аккумулятор,ном_порта 

Назначение: ввод значения из порта ввода-вывода.


Алгоритм работы:


Передает байт, слово, двойное слово из порта ввода-вывода в один из регистров al/ax/eax. Состояние флагов после выполнения команды: выполнение команды не влияет на флаги.


Состояние флагов после выполнения команды:

выполнение команды не влияет на флаги

Применение:


Команда применяется для прямого управления оборудованием компьютера посредством портов. Номер порта задается вторым операндом в виде непосредственного значения или значения в регистре dx. Непосредственным значением можно задать порт с номером в диапазоне 0-255. При использовании порта с большим номером используется регистр dx. Размер данных определяется размерностью первого операнда и может быть байтом, словом, двойным словом. В качестве примера применения рассмотрим фрагмент обработчика прерывания от клавиатуры 9. Это прерывание вызывается всякий раз при нажатии любой клавиши на клавиатуре. Обработчик этого прерывания должен прочитать скан-код клавиши, подтвердить микропроцессору клавиатуры факт приема скан-кода, преобразовать этот код в соответствии с клавишами-переключателями и поместить преобразованный код в буфер клавиатуры, находящийся в области BIOS. Действия чтения и подтверждения приема скан-кода могут выглядеть, к примеру, так:

        in      al,60h  ;читаем скан-код         push    ax      ;сохраним его на время         in      al,61h  ;читаем порт 61h         or      al,80h  ;старший бит байта из порта 61h в 1         out     61h,al  ;подтверждаем факт приема скан-кода         pop     ax         out     61h,al  ;восстановили байт в порту 61h         

См. также: урок 7 и команды , ,



Содержание раздела