Логические и арифметические основы и принципы работы ЭВМ



         

Способы адресации


Решить проблему сокращения разрядности команды только за счет сокращения количества указываемых в команде операндов и применения регистровой памяти невозможно. Этой же цели служит использование различных способов адресации операндов. Кроме того, применение нескольких способов адресации повышает гибкость программирования, так как в каждом конкретном случае позволяет обеспечить наиболее рациональный способ доступа к информации в памяти.

Различные способы адресации базируются на разных механизмах определения физического адреса операнда, то есть адреса фактического обращения к памяти при выполнении команды. Определение набора способов адресации, закладываемых в систему команд, является одним из важнейших вопросов разработки ЭВМ, существенно влияющим на ее архитектуру, вычислительные возможности, объем оборудования, быстродействие и другие характеристики.

К основным способам адресации относятся следующие: прямая, непосредственная, косвенная, относительная.

Прямая адресация. Физический адрес операнда совпадает с кодом в адресной части команды (рис. 11.4). Формальное обозначение:

Операндi = (Аi),

где Аi – код, содержащийся в i-м адресном поле команды.

Прямая адресация

Рис. 11.4.  Прямая адресация

Выше при описании способов кодирования команд и расчете длины адресного поля предполагалось использование именно этого способа адресации.

Допускается использование прямой адресации при обращении как к основной, так и к регистровой памяти.

Непосредственная адресация. В команде содержится не адрес операнда, а непосредственно сам операнд (рис. 11.5):

Операндi= Аi.

Непосредственная адресация

Рис. 11.5.  Непосредственная адресация

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




Содержание  Назад  Вперед