
- •А. В. Поздняков, б. Я. Цилькер микропроцессоры и микропроцессорные системы
- •Часть 1
- •(Учебное пособие)
- •Содержание
- •1. Микропроцессорные системы
- •1.1. Историческая справка
- •1.2. Архитектура мпс с магистрально-модульной организацией
- •1.3. Режимы работы мпс
- •2. Микропроцессорный модуль
- •2.1. Центральный процессор
- •2.1.1. Классификация микропроцессоров
- •2.1.2. Структура центрального процессора
- •2.1.2.1. Краткая характеристика микропроцессора Intel 8086
- •2.1.2.2. Архитектура микропроцессора Intel 8086
- •2.1.2.3. Программная модель микропроцессора Intel 8086
- •2.1.2.4. Представление информации в мп Intel 8086
- •2.1.2.5. Способы адресации операндов в мп Intel 8086
- •2.1.2.6. Система команд мп Intel 8086
- •2.1.2.7. Содержание цикла команды, типовые машинные циклы мп Intel 8086
- •2.1.2.8. Входные и выходные сигналы мп Intel 8086
- •2.2. Сопроцессор
- •2.3. Генератор тактовых импульсов
- •2.4. Системный контроллер
- •2.5. Согласующие элементы микропроцессорных систем
- •2.5.1. Шинные формирователи
- •2.5.2. Буферные регистры
- •2.6. Контроллер прерываний
- •2.7. Контроллер прямого доступа к памяти
- •2.8. Программируемый таймер
- •3. Модуль памяти
- •3.1. Организация модуля памяти
- •3.2. Распределение адресного пространства зу
- •3.3. Декодирование старших разрядов адреса.
- •3.3.1. Декодирование адресов методом линейной выборки
- •3.3.2. Декодирование адресов с помощью логических компараторов
- •3.3.3. Декодирование адресов с применением комбинационных логических схем
- •3.4. Выбор типа зу
- •3.5. Функциональная схема модуля памяти
- •3.6. Обеспечение необходимой емкости зу
- •3.6.1. Увеличение разрядности зу
- •3.6.2. Увеличение адресного пространства зу
- •4. Модуль ввода-вывода
- •4.1. Интерфейс ввода-вывода
- •4.2. Параллельные порты
- •4.2.1. Параллельный порт вывода
- •4.2.2. Параллельный порт ввода
- •4.2.3. Параллельные порты ввода-вывода
- •4.3. Последовательные порты
- •4.3.1. Последовательный асинхронный порт вывода
- •4.3.2. Последовательный асинхронный порт ввода
- •4.3.3. Программируемый последовательный интерфейс
- •4.4. Организация обращения к портам ввода/вывода
- •4.4.1. Обращение к портам ввода/вывода с помощью специальных команд
- •4.4.2. Обращение к портам ввода/вывода с помощью команд пересылок
- •4.5. Способы организации ввода/ вывода информации в мпс
- •4.5.1. Организация ввода/вывода информации под управлением основной программы
- •4.5.2. Организация ввода/вывода в режиме прерывания программы
- •4.5.3. Организация ввода/вывода в режиме прямого доступа к памяти
- •Система команд микропроцессора Intel 8086 Команды пересылки данных
- •Арифметические команды
- •Логические команды
- •Команды передачи управления
- •Команды управления процессором
- •Команды обработки строк
- •Литература
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 тактов