
- •. Многоуровневая организация эвм
- •Понятия архитектуры, организации и реализации эвм
- •Принцип программного управления и машина Фон-Неймана
- •8. Цикл работы цп
- •9. Цикл шины. Приём данных.
- •10. Цикл шины. Выдача данных.
- •11. Микропрограммное управление
- •12. Способы адресации (прямая и относительная) и форматы команд.
- •Форматы команд
- •13. Способы адресации (косвенная и непосредственная) и форматы команд.
- •Форматы команд
- •5.2. Архитектура систем ввода-вывода
- •5.3. Способы выполнения операции передачи данных
- •Рис 5.3
12. Способы адресации (прямая и относительная) и форматы команд.
Форматы команд
Алгоритм, написанный пользователем программы, в конечном счете реализуется в виде машинных команд. Под командой понимают совокупность сведений, представленных в виде двоичных кодов, необходимых процессору для выполнения очередного шага. В ходе команды для сведений о типе операции, адресной информации о нахождении обрабатываемых данных, а также для информации о месте хранения результатов выделяются определенные разряды (поля).
|
|
КОП |
А3 | ||||
|
|
7 |
0 | ||||
|
КОП |
А1 |
А3 | ||||
|
15 |
|
6 |
5 |
0 | ||
КОП |
А1 |
А2 |
А3 | ||||
23 |
17 |
16 |
12 |
11 |
6 |
5 |
0 |
Форматом команды называется заранее обговоренная структура полей в её кодах, позволяющая ЭВМ распознавать составные части кода.
Главным элементом кода команды является код операции (КОП), что определяет, какие действия будут выполнены по данной команде. Под него выделяется N старших разрядов формата. В остальных разрядах размещаются А1 и А2 v адреса операндов. А3 - адрес результата.
Распределение полей в формате команды может изменяться при смене способа адресации.
Способ адресации - способ вычисления адреса операнда на основе информации, имеющейся в команде.
В системе команд процессора обычно предусматривается несколько способов адресации операндов для одной и той же операции. Поэтому в адресной части команды есть специальное поле - поле признаков операции, в котором кодируется признак адресации. Если такого признака нет, то способ адресации определяется по коду операции. Последний способ используется, если только небольшое число операций должно работать с разными способами адресации, так как иначе слияние признаков адресации с кодом операции значительно увеличит число кодов, а следовательно, и длину команды. При использовании поля признаков адресации любая операция может выполняться с любыми способами адресации.
Прямая адресация. Указание в команде прямого адреса операнда, т. е. номера ячейки памяти, в которой он записан, - простой и достаточно универсальный способ адресации, широко используемый и в ЭВМ первого и второго поколений. В настоящее время он находит ограниченное использование из-за трудности:
перемещения программ в памяти;
обработки массивов данных и организации специальных видов памяти;
обработки данных, организованных в списочные структуры;
передачи фактических параметров в подпрограммы.
Во всех этих случаях необходима модификация или формирование адресных частей команд, что усложняет программирование и сами программы.
Относительная адресация.Перемещаемым называется программный модуль, одинаково выполняемый процессором независимо от адресов памяти, в которых он расположен. Возможность создания перемещаемых в памяти программ определяется наличием соответствующих аппаратных средств в процессоре. Одно из таких средств - относительная адресация, реализуемая такими же аппаратными средствами, как и индексная.
Рис.17 Схема относительной адресации
Основная идея относительной адресации состоит в том, чтобы в команде указывать не абсолютный адрес операнда, а его смешение относительно начала программного модуля. Начальный адрес программного модуля - базовый адрес- загружается при входе в модуль на внутренний регистрBпроцессора- базовый регистр. Схема относительной адресации приведена на рис.17, откуда видно, что с точностью до обозначений она совпадает с индексной.
Для эффективной обработки массивов при относительной адресации применяется комбинированная индексно - относительная адресация, при которой адрес операнда А вычисляется как сумма трех величин:
A=(B)+(X)+D,
где (В), (X) - соответственно содержимое базового и индексного регистров с номерами В, X; D - смешение.
В команде отводится два поля для указания номеров базового и индексного регистров и одно поле для указания смещения.
Загрузка базового адресавбазовый регистробычно делается из самого программного модуля. Так как в процессоре выборка команд происходит по содержимому счетчика команд, то после получения программным модулем управления на счетчике команд будет адрес первой команды модуля. Этот адрес и может быть использован как базовый. Загрузку базового адреса удобно делать с помощью команды вызова подпрограммы, запоминающей содержимое счетчика команд в одном из регистров процессора.
В качестве базового регистраможно использовать исчетчик команд. В этом случае не требуется отводить отдельного регистра для хранения базового адреса и не нужно делать загрузку его. Недостаток адресации относительно счетчика команд в том, что при использовании одного и того же операнда в разных командах требуется указывать разную величину смещения. Однако этот недостаток не существен, так как подсчет смещений при подготовке программ делается транслятором, а при отладке - средствами отладочной программы.