- •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.2. Способы адресации, основанные на прямом использовании
кода команды.
Следует различать понятия адресный код и исполнительный адрес.
Адресный код АК – это информация об адресе операнда, содержащаяся в команде.
Исполнительный адрес АИ – это номер ячейки памяти, к которой производится фактическое обращение.
Адресный код, как правило, не совпадает с исполнительным адресом.
Способы, в которых исполнительный адрес определяется значением адресного кода команды, включают непосредственную, прямую, укороченную, регистровую, косвенную, автоинкрементную и автодекрементную адресации.
При непосредственной адресации в команде содержится не адрес операнда, а непосредственно сам операнд.
В этом случае не требуется ячейки памяти для хранения операнда, а значит не требуется и обращения к памяти для его выборки. В результате уменьшается время выполнения программы и занимаемого ею объёма памяти.
Непосредственная адресация удобна при работе с различного рода константами.
При прямой адресации исполнительный адрес совпадает с кодом адреса команды.
Укороченная адресация используется для уменьшения длины кода команды.
Суть способа сводится к тому, что в команде задаются только младшие разряды адресов, а старшие подразумеваются нулевыми.
Такая адресация позволяет использовать только небольшую группу фиксированных ячеек с короткими адресами и поэтому может применяться лишь совместно с другими способами адресации.
Косвенная адресация используется для преодоления ограничений короткого формата команды.
Адресный код команды указывает адрес ячейки памяти, в которой находится адрес операнда или команды.
Таким образом, косвенная адресация может быть иначе определена как "адресация адреса".
Данный вид адресации указывается либо кодом операции команды, либо её специальным разрядом – указателем адресации (УА).
В УА цифра 0 означает, что адресная часть команды является прямым адресом, а цифра 1 – косвенным адресом.
Иногда используется многоступенчатая косвенная адресация. В этом случае УА содержится и в ячейках памяти.
Адреса последовательно выбираются из памяти до тех пор, пока не будет найдена ячейка, в которой УА определит прямую адресацию. Адрес из этой последней ячейки и является искомым исполнительным адресом.
В МП широко применяется совместное использование регистровой и косвенной адресаций.
Пусть, например, необходимо передать число 4527 из Рг5 РОНа МП в оперативную память по адресу 1765.
Номера реги- стров
Передать
КОП
0
0101
1
0011
УА
УА
Рг5
Рг3
ОПЧисло 4527
Адрес 1765
Длина адресных полей достаточна
лишь для указания коротких номеров
регистров, т.е. не поз-воляет задать в
команде полный адрес ячейки памяти.
Поэтому операнд 4527 указывается регистровой
прямой адресацией (УА=0), а для задания
адреса 1765 приходится воспользоваться
регистровой косвенной адресацией
(УА=1), указывая номер регистра (здесь
Рг3), предварительно загруженного полным
адресом ячейки.
При автоинкрементной адресации в качестве исполнительного адреса используется содержимое регистра, указанного в команде. Затем содержимое этого регистра увеличивается на некоторую константу. Полученное число является новым исполнительным адресом и т.д.
При автодекрементной адресации содержимое указанного в команде регистра сначала уменьшается на некоторую константу. Полученный результат используется как исполнительный адрес.