Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекция ОРГЭВМ15.pdf
Скачиваний:
16
Добавлен:
02.06.2015
Размер:
274.9 Кб
Скачать

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

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

КОП Пример. (АС):=(АС)+1.

Непосредственная адресация. В коде команды задается сам операнд (операнды).

КОП

Операнд (О)

Пример. (АС):=(АС)+О.

 

 

 

Прямая (абсолютная) адресация. В коде команды задается адрес (А) операнда.

КОП

А

 

 

Память

 

 

АЕ

 

 

 

Операнд

 

 

 

 

(АС):=(АС)+М[АЕ].

Регистровая (прямая регистровая) адресация. В

коде команды задается номер NR регистра, содержащего операнд.

 

 

 

 

Регистры

 

КОП

NR

АЕ= NR

 

 

 

 

 

 

 

 

 

 

 

Операнд

(АС):=(АС)+R[АЕ].

 

 

Косвенная адресация. В коде команды при одноступенчатой косвенной адресации задается адрес (А) ячейки памяти, в которой хранится адрес

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

 

 

 

Память

КОП

А

 

 

 

 

 

 

 

 

 

 

А

 

 

 

 

АО

 

АЕ=М[А]

 

 

Операнд

 

 

 

 

 

 

 

 

 

 

 

(АС):=(АС)+М[М[А]]. (АС):=(АС)+М[…М[А]].

Косвенная регистровая адресация. В коде

команды задается номер NR регистра, содержащего адресоперанд. О) ячейки памяти, в которой хранится

 

 

 

 

 

Память

КОП

NR

 

Регистры

 

 

 

 

 

 

 

 

 

NR

 

 

 

 

 

АО

 

 

 

 

 

 

 

 

 

 

АЕ

 

 

 

 

 

 

 

 

Операнд

 

 

 

АЕ=R[NR]

 

 

 

 

(АС):=(АС)+М[R[NR]].

Базовая адресация. Исполнительный адрес вычисляется путем суммирования адреса (D) из команды (смещения) и базы (B), которая берется из специального регистра базы (RB) или регистра общего назначения (РОН), выбираемого по номеру, указанному в команде. АЕ=(RB)+D или АЕ=R[NR]+D.

RC

КОП

NR

 

 

D

 

Память

Регистры

 

 

RB

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Операнд

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

NR

 

 

 

АЕ=(RB)+D

 

 

 

 

 

 

 

 

 

 

(АС):=(АС)+М[(RB)+D].

Относительная адресация. Исполнительный адрес вычисляется путем суммирования адреса (D) из команды (смещения) и содержимого программного счетчика (РС). Обычно поле D интерпретируется как двоичное число в дополнительном коде, что позволяет, задавать как положительное, так и отрицательное смещение.

RC

КОП

 

 

D

 

Память

Программный

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

РС

 

 

 

 

 

 

 

счетчик

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Операнд

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

АЕ=(РС)+D

 

 

 

 

 

 

 

 

(АС):=(АС)+М[(РС)+D].

Индексная адресация. Исполнительный адрес вычисляется путем суммирования адреса (А) из команды и индекса (I), который берется из специального регистра индекса (RI) или РОН. Индекс может быть умножен на масштабный множитель m=1,2,4,8. АЕ=(RI)m+A или АЕ=R[NR]m+A .

RC

КОП

NR

A

 

Память

Регистры

 

 

 

RI

 

 

 

 

 

 

I

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

I

 

 

 

 

 

 

 

 

 

m

 

 

 

 

 

 

 

 

 

 

 

Операнд

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

NR

 

 

 

 

 

 

 

 

 

 

 

АЕ=(RI)m+A

 

 

 

 

 

 

 

 

 

(АС):=(АС)+М[(RI)m+A], (RI):=(RI)+C.

Автоиндексация. При индексной адресации осуществляется уменьшение или увеличение содержимого индексного регистра до или после обращения к нему с помощью дополнительной команды. Обычно изменение содержимого регистра происходит на единицу, поэтому целесообразно сделать это «автоматически» микропрограммно в команде, использующей индексную адресацию.

Автоинкрементная

Автодекрементная

 

 

 

 

Постинкре-

Преинкре-

Постдекре-

Предекре-

ментная

ментная

ментная

ментная

АЕ=(RI)+A,

(RI):=(RI)+1,

АЕ=(RI)+A,

(RI):=(RI)-1,

(RI):=(RI)+1

АЕ=(RI)+A

(RI):=(RI)-1

АЕ=(RI)+A