- •7. Принципы управления микропроцессора.
- •7.1. Классификация микропроцессоров.
- •7.2. Декомпозиция мп.
- •7.3. Принцип аппаратного управления ("жёсткой" логики).
- •7.4. Принцип микропрограммного управления (гибкой логики).
- •7.5. Способы формирования сигналов управления
- •Код номера
- •7.6. Операционное устройство мп.
- •7.7. Обобщённая структурная схема мп.
- •Адресный блок
- •8. Элементы архитектуры мп.
- •8.1. Структура команд.
- •8.2. Способы адресации, основанные на прямом использовании
- •Номера реги- стров
- •Число 4527
- •Адрес 1765
- •8.3. Способы адресации, основанные на преобразовании кода команды.
- •8.4. Понятие вектора состояния мп.
- •8.5. Понятие системы прерывания программ.
- •8.6. Характеристики системы прерывания.
- •8.7. Способы организации приоритетного обслуживания
- •Счётчик
- •Счётчик
- •Компаратор
- •Код маски
- •8.8. Процесс выполнения команд. Рабочий цикл мп.
- •8.9. Конвейерная обработка команд и данных.
- •8.10. Особенности risc-архитектуры.
- •Регистры глобальных переменных
8.3. Способы адресации, основанные на преобразовании кода команды.
Способы, в которых исполнительный адрес определяется адресным кодом команды и содержимым регистров МП, включают относительную и индексную адресации.
При относительной адресации (базировании) исполнительный адрес определяется суммой адресного кода команды и некоторого числа, называемого базовым адресом.
Базовые адреса хранятся в отведённых для этой цели регистрах, а в команде выделяется поле для указания номеров этих регистров.
Относительная адресация позволяет при меньшей длине адресного кода команды обеспечить доступ к любой ячейке памяти.
Д
Базовый адрес
Смещение
D
Смещение D определяет положение операнда относительно начала массива данных, задаваемого базовым адресом.
Поскольку суммирование связано с потерей времени, то для формирования исполнительного адреса используют так- же метод совмещения.
В этом случае базовый адрес содержит старшие, а смеще-ние – младшие разряды исполнительного адреса, которые объединяются в регистре адреса.
Однако при совмещении базовый адрес может задавать не любую ячейку, а только те, адреса которых содержат нули в младших разрядах, соответству-ющих смещению.
Относительная адресация обеспечивает так называемую перемещаемость программ, т.е. возможность передвижения программ в памяти без изменений внутри самой программы.
Развитием метода базирования является индексация.
Механизм индексации обеспечивает автоматическую модификацию адресных частей команд и используется для управления циклическими вычислительными процессами.
В данном случае модификация заключается в изменении адресных частей соответствующих команд согласно расположению в оперативной памяти обрабатываемых операндов.
Для выполнения индексации используются так называемые индексные регистры, а в формате команды выделяется поле для указания номера индексного регистра.
Наименование индексных регистров связано с тем, что первоначально они предназначались для хранения индекса текущего элемента массива ai. Хотя назначение индексных регистров значительно расширилось, термин сохранился.
Исполнительный адрес формируется путём сложения адресного кода команды (смещения) с содержимым индексного регистра (индексом), а при наличии базирования – и с базовым адресом.
Отличительной чертой индексации является то, что код команды, хранящейся в оперативной памяти, остаётся неизменным. Следовательно, одна и та же команда может использоваться при соответствующих изменениях индекса для формирования различных исполнительных адресов.
Для управления индексацией используются команды, задающие операции над содержимым индексных регистров.
Можно выделить следующие основные виды индексных операций: а)засылка в соответствующий индексный регистр начального значения индекса; б) изменение индекса и в)проверка окончания циклических вычислений.
Изменение индекса состоит в сложении или вычитании значения индекса с фиксированным приращением.
Соответствующая команда указывает номер индексного регистра, а также значение и знак (или адрес) приращения.
Для проверки выхода из цикла используются или обычная команда условного перехода, или специальные команды "условный переход по счётчику" и "условный переход по индексу".
Счётчиком обычно служит один из регистров общего назначения, в который перед началом цикла загружается число повторений цикла.
Команда "условный переход по счётчику" может иметь, например, следующий вид:
Э
УПСч
R1
X2
B2
D2
УПИ
R1
R3
B2
D2
Команда "условный переход по индексу" имеет, например, вид:
Здесь R1 – номер индексного регистра; R3 – номер регистра, хранящего приращение; сумма содержимого регистра В2 с содержимым поля D2 определяет адрес начала цикла; в регистре с номером R3+1 хранится предельное значение индекса.
Команда производит суммирование содержимого регистров R1 и R3. Если новое значение индекса меньше или равно предельному, то это новое значение помещается в регистр R1 и происходит переход к началу цикла (повторение цикла). В противном случае выход из цикла.
Аналогично выполняется проверка окончания цикла в случае обратного условия.