27.Организация ввода-вывода
В дополнение к области памяти (объемом 1 Мб) МП может адресоваться к внешним устройствам через 5536 портов ввода\вывода. Он имеет специальные команды в/в которые позволяют пользователю иметь доступ к первым 256 портам (от 00H до FFH). Другие команды позволяют получить косвенный доступ к порту с помощью занесения номера порта в регистр данных. Любой порт в/в может иметь 8 или 16 разрядов.
В микропроцессорах Intel изначально определены две команды для работы с
портами: IN (для вывода из порта) и OUT (для ввода в порт). Позднее появились команды строковой пересылки INS и OUTS. Есть две разновидности команд IN и OUT.
Если номер порта не превышает FFH, то используется прямая адресация: IN AL,port,
IN AX,port, OUT port,AL, OUT port,AX (port — номер порта <FFH). Если номер порта превышает FFH, то используется косвенная адресация через регистр DX: IN AL,DX, IN AX,DX, OUT
DX,AL,OUTDX,AX.
Работа с клавиатурой.
Управление клавиатурой построено на основе микроконтроллера Intel 8042. Контроллер клавиатуры выполняет следующие действия: прием данных от клавиатуры; проверка четности поступившего байта; трансляция (кодирование) полученной информации; помещение байта данных в выходной буфер и извещение процессора; передача байта во входной буфер клавиатуры.
Для каждой клавиши клавиатурой вырабатывается два кода: код нажатия и код
прерывания (клавишу отпустили).
Входной буфер контроллера. Доступен по записи: 60h - запись данных, 64Н - запись команды.
Выходной буфер контроллера. Доступен по чтению по адресу 60Н.