|
|||
Прямая адресация.. Косвенная адресация.. Индексная адресация. ⇐ ПредыдущаяСтр 2 из 2 Прямая адресация.
При прямой адресации обращение за операндом производится по адресному коду в поле команды. При этом исполнительный адрес совпадает с адресом кода команды.
Косвенная адресация.
При косвенной адресации код команды указывает адрес ячейки памяти, в которой находится не сам операнд, а его адрес, называемый указателем. Индексная адресация.
Используется для работы программ с массивами, требующими однотипных операций над элементами массива. Адрес i-того операнда в массиве определяется как сумма начального адреса массива операнда, задаваемого смещением S, и индекса I, записанного в одном из регистров регистровой памяти, называемым индексным регистром. Адрес индексного регистра задается в команде полем адреса индекса Аи. В каждом i-том цикле содержимое индексного регистра изменяется на постоянную величину, как правило, это 1. В некоторых моделях ЭВМ относительная адресация выполняется без суммирования по следующей схеме:
Автоиндексная адресация
При автоиндексации косвенный адрес, находящийся в регистре РП, автоматически увеличивается (автоинкрементная адресация), или уменьшается (автодекрементная адресация) на постоянную величину до или после выполнения операции. Существует достаточное количество способов адресации с использованием базы и смещения. В этом случае исполнительный адрес формируется путем сложения двух компонент – базового адреса и смещения. Базовый адрес загружается в специальный регистр базы. Для определения смещения используют уже перечисленные способы адресации. Разновидностью прямой и косвенной адресации является регистровая – адресное поле команды указывает не на ячейку памяти, а на регистр: Стековая адресация.
Стековая память широко используется в современных ЭВМ. Хотя адрес обращения в стек отсутствует в команде, он формируется схемой управления: Для чтения записи доступен только один регистр v вершина стека. Этот способ адресации используется, в частности, системой прерывания программ при вложенных вызовах подпрограмм. Стековая память реализуется на основе обычной памяти с использованием указателя стека и автоиндексной адресации. Запись в стек производится с использованием автодекрементной адресации, а чтение - с использованием автоинкрементной адресации.
|
|||
|