
- •А. В. Поздняков, б. Я. Цилькер микропроцессоры и микропроцессорные системы
- •Часть 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 Команды пересылки данных
- •Арифметические команды
- •Логические команды
- •Команды передачи управления
- •Команды управления процессором
- •Команды обработки строк
- •Литература
2.1.2.5. Способы адресации операндов в мп Intel 8086
Микропроцессором Intel 8086 для определения адреса операнда используется:
прямая адресация;
непосредственная адресация;
регистровая адресация;
регистровая косвенная адресация;
базовая адресация;
индексная адресация;
базово-индексная адресация;
относительная адресация;
адресация в командах обработки строк;
стековая адресация.
Прямая адресация. В адресной части команды находится 16-разрядный исполнительный адрес (см. рис. 2.7). В командах безусловных переходов и обращения к подпрограммам содержится логический адрес: 16-разрядный адрес сегмента и 16-разрядный адрес смещения. В процессе выполнения команды смещение передается в указатель команд IP, а базовый адрес сегмента – в регистр CS.
Рис. 2.7. Прямая адресация
Непосредственная адресация. В адресной части команды содержится непосредственно сам одно- или двухбайтный операнд. Операнд располагается в конце кода команды, причем младший байт всегда предшествует старшему. Однобайтовый операнд записывается в дополнительном коде и может представлять константы в диапазоне от -128 до +127.
Рис. 2.8. Непосредственная адресация
Регистровая адресация. Операнд находится в одном из регистров общего назначения. Для адресации регистров используются 2-3 разряда кода команды.
Рис. 2.9. Регистровая адресация
Регистровая косвенная адресация. В командах с регистровой косвенной адресацией 16-разрядный исполнительный адрес находится в одном из регистров общего назначения. Для косвенной адресации могут использоваться только регистры BX, SI и DI.
Рис. 2.10. Регистровая косвенная адресация
Базовая адресация. Исполнительный адрес получается путем сложения содержимого регистра BX или BP с 8- или 16-разрядным смещением. 8-разрядное смещение представляет числа в диапазоне от -128 до +127, записанные в дополнительном коде.
Рис. 2.11. Базовая адресация
Индексная адресация. Исполнительный адрес получается путем сложения содержимого регистра SI или DI с 8- или 16-разрядным смещением. 8-разрядное смещение представляет числа в диапазоне от -128 до +127, записанные в дополнительном коде.
Рис. 2.12. Индексная адресация
Базово-индексная адресация. Исполнительный адрес формируется сложением содержимого базового (BX или BP) и индексного (SI или DI) регистров со смещением. 8-разрядное смещение представляет числа в диапазоне от -128 до +127, записанные в дополнительном коде.
Рис. 2.13. Базово-индексная адресация
Относительная адресация. Исполнительный адрес вычисляется как сумма текущего содержимого указателя команд IP и смещения в команде. 8-разрядное и 16-разрядное смещение представляет числа со знаком в диапазоне от -128 до +127 или от -32768 до +32767.
Рис. 2.14. Относительная адресация
Адресация в командах обработки строк символов. Для адресации элементов строк источников данных применяется регистр SI, а сами элементы по умолчанию располагаются в сегменте данных DS. Результаты обработки строк символов адресуются с помощью регистра DI и всегда помещаются в дополнительный сегмент ES. Если перед командой обработки строки размещается однобайтовый префикс повторения REP, то соответствующая операция будет повторяться до тех пор, пока содержимое счетчика циклов повторения CX не станет равным нулю.
В процессе выполнения команды обработки строки автоматически корректируется содержимое регистров SI и DI в зависимости от значения флага направления DF. Если флаг установлен в 0, то после каждой операции содержимое соответствующих индексных регистров увеличивается на единицу для операций с байтами и на два – для операций со словами. При установке флага DF в 1 процесс выполнения команды производится с уменьшением содержимого индексных регистров на те же величины. Таким образом, в командах обработки строк в зависимости от состояния флага DF обеспечиваются автоинкрементный и автодекрементный способы адресации.
Стековая адресация. Исполнительный адрес операнда находится в указателе стека SP и автоматически уменьшается на два при записи в стек или увеличивается на два при чтении из стека. Заполнение стека происходит в направлении уменьшения адресов ячеек памяти («перевернутый» стек).