Способы адресации (прямая и относительная) и форматы команд.



1.1 Форматы команд

Алгоритм, написанный пользователем программы, в конечном счете реализуется в виде машинных команд. Под командой понимают совокупность сведений, представленных в виде двоичных кодов, необходимых процессору для выполнения очередного шага. В ходе команды для сведений о типе операции, адресной информации о нахождении обрабатываемых данных, а также для информации о месте хранения результатов выделяются определенные разряды (поля).

КОП

А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 - смешение.

В команде отводится два поля для указания номеров базового и индексного регистров и одно поле для указания смещения.

Загрузка базового адреса в базовый регистр обычно делается из самого программного модуля. Так как в процессоре выборка команд происходит по содержимому счетчика команд, то после по­лучения программным модулем управления на счетчике команд будет адрес первой команды модуля. Этот адрес и может быть использован как базовый. Загрузку базового адреса удобно делать с помощью команды вызова подпрограммы, запоминающей содер­жимое счетчика команд в одном из регистров процессора.

В качестве базового регистра можно использовать и счетчик команд. В этом случае не требуется отводить отдельного регистра для хранения базового адреса и не нужно делать загрузку его. Недостаток адресации относительно счетчика команд в том, что при использовании одного и того же операнда в разных командах требуется указывать разную величину смещения. Однако этот не­достаток не существен, так как подсчет смещений при подготовке программ делается транслятором, а при отладке - средствами отладочной программы.

 

 


Дата добавления: 2018-05-09; просмотров: 678; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!