- •Основные термины и определения
- •Введение (типы микропроцессорных систем)
- •1. Организация микропроцессорных систем
- •1.2 Архитектура микропроцессорных систем с 3-мя шинами.
- •1.3.1 Шины микропроцессорной системы
- •2.2 Адресация операндов
- •2.3 Методы адресации
- •2.4 Система команд процессора
- •2.4.1. Команды пересылки данных
- •3.4.2. Арифметические команды
- •2.4.3. Логические команды
- •2.4.4. Команды переходов
- •3.1 Функции микропроцессора.
- •3.2.1. Назначение выводов микропроцессора
- •3.2.2. Сегментирование памяти
- •3.2.3. Адресация байтов и слов
- •3.2.4. Регистры процессора
- •3.4. Быстродействие микропроцессора
- •5. Подсистема ввода-вывода мпс
- •5.1. Функции устройств ввода-вывода
- •5.2 Организация интерфейса ввода-вывода мпс. Интерфейсные бис.
- •5.2.1. Способы организации передачи информации между устройствами мпс.
- •Синхронный обмен данными
- •5.2.3 Многорежимный буферный регистр к589ир12 (i8212)
- •5.2.4 Программируемый параллельный интерфейс (ппи) - кр580вв55а.
- •5.3 Подсистема аналогового ввода-вывода.
- •Типовая схема ввода в мпс аналогового сигнала
- •6. Организация микроконтроллеров
- •6.1. Классификация и структура микроконтроллеров
- •6.2. Процессорное ядро микроконтроллера
- •6.2.1. Структура процессорного ядра мк
- •6.2.2. Система команд процессора мк
- •6.3. Память программ и данных мк
- •6.3.1. Память программ
- •6.3.2. Память данных
- •6.3.3. Регистры мк
- •6.3.4. Стек мк
- •6.3.5. Внешняя память
- •6.4 Однокристальные микроЭвм семейства мк51 (mcs-51)
3.2.2. Сегментирование памяти
В микропроцессоре ВМ86 сегментирование памяти организовано следующим образом.
Вся память системы представляется не в виде непрерывного пространства, а в виде нескольких кусков — сегментов заданного размера (по 64 Кбайта), положение которых в пространстве памяти можно изменять программным путем.
Для хранения кодов адресов памяти используются не отдельные регистры, а пары регистров:
- сегментный регистр определяет адрес начала сегмента (то есть положение сегмента в памяти);
- регистр указателя (регистр смещения) определяет положение рабочего адреса внутри сегмента.
При этом физический 20-разрядный адрес памяти, выставляемый на внешнюю шину адреса, образуется так, как показано на рис. 3.4, то есть путем сложения смещения и адреса сегмента со сдвигом на 4 бита. Положение этого адреса в памяти показано на рис. 3.5.
Сегмент может начинаться только на 16-байтной границе памяти (так как адрес начала сегмента, по сути, имеет четыре младших нулевых разряда, как видно из рис. 3.4), то есть с адреса, кратного 16. Эти допустимые границы сегментов называются границами параграфов.
Отметим, что введение сегментирования, прежде всего, связано с тем, что внутренние регистры процессора 16-разрядные, а физический адрес памяти 20-разрядный (16-разрядный адрес позволяет использовать память только в 64 Кбайт, что явно недостаточно). В появившемся в то же время процессоре MC68000 фирмы Motorola внутренние регистры 32-разрядные, поэтому там проблемы сегментирования памяти не возникает.
Рис. 3.4. Формирование физического адреса памяти из адреса сегмента и смещения.
Рис. 3.5 Физический адрес в сегменте (все коды — шестнадцатеричные).
3.2.3. Адресация байтов и слов
Многие процессоры, имеющие разрядность 16 или 32, способны адресовать не только целое слово в памяти (16-разрядное или 32-разрядное), но и отдельные байты. Каждому байту в каждом слове при этом отводится свой адрес.
Так, в случае 16-разрядных процессоров все слова в памяти (16-разрядные) имеют четные адреса. А байты, входящие в эти слова, могут иметь как четные адреса, так и нечетные.
Например, пусть 16-разрядная ячейка памяти имеет адрес 23420, и в ней хранится код 2А5Е (рис. 3.6).
Рис. 3.6. Адресация слов и байтов.
При обращении к целому слову (с содержимым 2А5Е) процессор выставляет адрес 23420. При обращении к младшему байту этой ячейки (с содержимым 5Е) процессор выставляет тот же самый адрес 23420, но использует команду, адресующую байт, а не слово. При обращении к старшему байту этой же ячейки (с содержимым 2А) процессор выставляет адрес 23421 и использует команду, адресующую байт. Следующая по порядку 16-разрядная ячейка памяти с содержимым 487F будет иметь адрес 23422, то есть опять же четный. Ее байты будут иметь адреса 23422 и 23423.
Для различия байтовых и словных циклов обмена на магистрали в шине управления предусматривается специальный сигнал байтового обмена ВНЕ. Для работы с байтами в систему команд процессора вводятся специальные команды или предусматриваются методы байтовой адресации.
Адресация ввода-вывода.
Для обращения к устройствам ввода-вывода процессор имеет отдельные команды IN и OUT, результатом выполнения которых является формирование шинных сигналов IORD# (Input/Output Read) и IOWR# (Input/Output Write) для чтения или записи одного или двух байт. Данные при чтении могут помещаться только в регистр AL или AX и выводятся из этих же регистров. В циклах ввода-вывода используется только 16 младших бит шины адреса (старшие биты при этом нулевые), что позволяет адресовать до 64 Кб регистров ввода-вывода. Адрес устройства задается либо в команде (только младший байт, старший — нулевой), либо берется из регистра DX (полный 16-битный адрес).