Общие режимы адресации памяти микро-ЭВМ «Электроника-60».
Общие режимы адресации памяти микро-ЭВМ «Электроника-60», их символическое обозначение и код режима (значение поля команды с разрядами 11 – 9 или 5 – 3 в зависимости от того, к какому из операндов относится режим адресации) приведены ниже:
0 Регистровый Rn
1 Регистровый косвенный *Rn
2 Автоинкрементный косвенный (Rn) +
3 Автоинкрементный двойной *(Rn)+
косвенный
4 Автодекрементный косвенный - (Rn)
5 Автодекрементный двойной * - (Rn)
косвенный
6 Индексный X(Rn)
7 Индексный косвенный *X(Rn)
Здесь Rn – имя регистра общего назначения (вместо имени можно использовать сочетание знака «%» и фактического номера регистра).
Для регистрового режимахарактерно, что адресуемый операнд находится в регистре. В зависимости от команды регистровый режим может задаваться для единственного операнда, операнда-источника, операнда-приемника или для обоих операндов (в двухадресных командах).
В примерах, иллюстрирующих режимы адресации, будем указывать выполняемую команду (на языке ассемблера) и состояние регистров и слов памяти, используемых в операции, до и после выполнения команды.
В регистровом косвенном режимеадресуемый операнд находится в оперативной памяти, а адрес операнда – в заданном регистре.
Автоинкрементный косвенный режимподобен регистровому косвенному режиму, за исключением того, что после адресации операнда и выполнения над ним заданной операции содержимое регистра увеличивается на два (в командах выполнения операций над словами) или на единицу (в командах выполнения операций над байтами).
В автоинкрементном двойном косвенном режимеуровень косвенной адресации равен двум, т. е. заданный в команде регистр содержит адрес слова памяти, хранящего адрес операнда. После доступа к операнду содержимое регистра увеличивается на два (в пословных командах) или на единицу (в байтовых командах).
Автодекрементный косвенный режимподобен регистровому косвенному режиму, за исключением того, что предварительно, до адресации операнда, содержимое регистра уменьшается на два или на единицу (в зависимости от команды) и только после этого используется как адрес операнда, находящегося в оперативной памяти. Следовательно, автодекрементный и автоинкрементный косвенные режимы в определенном смысле противоположны друг другу. Они весьма удобны для просмотра массивов в прямом и обратном направлениях, а также при выполнении операций над стеком.
В автодекрементном двойном косвенном режимесодержимое регистра, предварительно уменьшенное на два или на единицу (в зависимости от команды), используется как указатель адреса, по которому в памяти располагается адрес операнда.
Индексный режимявляется также режимом косвенной адресации. Эффективный адрес операнда вычисляется суммированием содержимого регистра и константы, хранящейся в слове памяти, следующем за словом команды (если индексный режим задается только для одного операнда). Если команда двухоперандная и для каждого операнда задан индексный режим, то в слове, следующем за словом команды, должна находиться константа для вычисления адреса первого операнда, а в следующем слове — константа для вычисления адреса второго операнда. Значит, команда с индексным режимом адресации может занимать в памяти два или даже три слова подряд.
Индексный косвенный режимимеет уровень косвенной адресации, равный двум. Содержимое регистра, сложенное с константой, используется как адрес, по которому в памяти находится адрес операнда. Константа, суммируемая с содержимым регистра, хранится в слове, следующем за словом команды.
Дата добавления: 2015-12-08; просмотров: 892;