Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Micro_systK.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
4.09 Mб
Скачать

4.4. Организация обращения к портам ввода/вывода

Обращение к портам ввода/вывода может быть выполнено:

  • с помощью специальных команд;

  • с помощью команд пересылки.

4.4.1. Обращение к портам ввода/вывода с помощью специальных команд

Специальными командами ввода/вывода применительно к микропро­цессору I8086 являются команды вывода:

  • OUT n, AL;

  • OUT n, AX;

  • OUT DX, AL;

  • OUT DX, AX;

и команды ввода:

  • IN AL, n;

  • IN AX, n;

  • IN AL, DX;

  • IN AX,DX, где n – номер порта от 0 до 255, DX – значение регистра трактуется как номер порта 0…65535.

Для указания номера порта n используется 8 разрядов шины адреса, а для указания номера порта с помощью регистра DX – 16 разрядов шины адреса.

Следовательно, для обращения к портам ввода/вывода с помощью спе­циальных команд в портах необходимо иметь либо 8-разрядный дешифратор номера (адреса) порта (при прямой адресации), либо 16-разрядный дешифратор номера порта (при косвенной адресации через регистр DX).

П ри выполнении специальных команд ввода/вывода на шине управления формируется или сигнал IOWR (Зп УВВ) или сигнал IORD (Чт УВВ). Эти сигналы необходимо завести в порты ввода-вывода в качестве управляющих сигналов.

Причем, команды

  • OUT DX, AL;

  • OUT DX, AX;

  • IN AL, DX;

  • IN AX,DX выполняются за 8 тактов,

а команды

  • OUT n, AL;

  • OUT n, AX;

  • IN AL, n;

  • IN AX, n – за 10 тактов.

4.4.2. Обращение к портам ввода/вывода с помощью команд пересылок

В этом случае портам ввода/вывода выделяется определенное адресное пространство в пределах адресного пространства основной памяти. Примени­тельно к микропроцессору I8086 – в пределах 1 Мбайта (т. е. порты ввода-вывода интерпретируются как ячейки памяти).

Для вывода информации могут быть использованы команды:

  • MOV MEM, AL;

  • MOV MEM, AX;

  • MOV MEM, REG;

  • MOV MEM, CONST,

а для ввода информации – команды:

  • MOV AL, MEM;

  • MOV AX, MEM;

  • MOV REG, MEM.

Причем, адрес ячейки памяти MEM может быть указан с помощью прямой адресации, косвенной адресации через базовый регистр, косвенной адресации через индексный регистр, косвенной адресации через базовый и индексный регистры.

При прямой адресации выполнение команд

  • MOV AL, MEM;

  • MOV AX, MEM;

  • MOV REG, MEM занимает 8 тактов, команды MOV MEM, REG – 9 тактов,

а команд:

  • MOV MEM, AL;

  • MOV MEM, AX;

  • MOV MEM, CONST – 10 тактов.

П ри выполнении команд пересылок на шину адреса выдается 20-раз­рядный адрес ячейки памяти, а на шине управления формируется или сигнал MEMW (Зп ЗУ) или сигнал MEMR (Чт ЗУ).

С ледовательно, для обращения к портам ввода/вывода с помощью команд пересылок в портах необходимо иметь 20-разрядный дешифратор адреса порта, и к портам ввода/вывода подвести в качестве управляющих сигналов сигналы MEMW (Зп ЗУ), MEMR (Чт ЗУ).

Данный способ обращения к портам ввода-вывода позволяет сократить время выдачи (приема) информации.

Докажем это на примере. Необходимо переслать содержимое регистра BL в порт 0Ah.

1 вариант. MOV AL, BL ; AL:= BL 2 такта

OUT 0Ah, AL ; Порт 0Ah:= AL 10 тактов

12 тактов

2 вариант.

MEM EQU 0Ah

MOV MEM, BL ; MEM:=BL 9 тактов

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]