Раздел «Язык Си».PDPmode:

Режимы адресации

Операнд SS или DD состоит из 6 бит mmmrrr - 3 бита на номер режима (mode), 3 бита на номер регистра.
режим адресации # описание режима примеры
регистровый Register 0 регистр содержит операнд CLR R1
косвенно-регистровый Register deferred 1 регистр содержит адрес операнда CLR (R1)
CLR @R1
автоинкрементный Auto-increment 2 регистр содержит адрес операнда. Содержимое регистра после операции увеличивается на 2 или на 1 (байтовая операция на регистрах R0-R5) CLR (R2)+
косвенно-автоинкрементный Auto-increment deferred 3 регистр содержит адрес адреса операнда. Содержимое регистра после его использования в качестве адреса увеличивается на 2 CLR @(R2)+
автодекрементный Auto-decrement 4 Содержимое регистра до операции уменьшается на 2 или на 1 (байтовая операция на регистрах R0-R5) и используется как адрес операнда. CLR -(R2)
косвенно-автодекрементный Auto-decrement deferred 5 Содержимое регистра уменьшается на 2 и используется как адрес адреса операнда. CLR @-(R2)
индексный
Index
6 содержимое регистра складывается с числом, записанным после команды, и полученная сумма используется в качестве адреса операнда CLR 2(R5)
косвенно-индексный
Index deferred
7 содержимое регистра складывается с числом, записанным после команды, и полученная сумма используется в качестве адреса операнда CLR @2(R5)
Режимы адресации с регистром PC
непосредсвенный
Immediate
2 операнд хранится в слове, следующем за командой MOV #21, R3
абсолютный
Absolute
3 адрес операнда хранится в слове, следующем за командой CLR @#100
относительный
Relative
6 содержимое РС складывается со словом, записанным в памяти за командой, и полученная сумма используется как адрес операнда. CLR 5554
косвенно-относительный
Relative deferred
7 содержимое РС складывается со словом, записанным в памяти за командой, и полученная сумма используется как адрес адреса операнда. CLR @5554

0: r : регистровый

r
регистр содержит операнд

Пример:

1: @r или (r) : косвенно-регистровый

@r или (r)
регистр содержит адрес операнда

Пример:

2: (r)+ : автоинкрементный

(r)+
Регистр содержит адрес операнда. Содержимое регистра после его использования как адреса автоматически увеличивается на 1 или на 2 (если команда оперирует словами или вовлечены R6 или R7).

Пример:

2, r=7: #nn : непосредственный

#nn
Число nn лежит в очередном слове команды. Так как вовлечен регистр PC, его значение всегда увеличивается на 2. Значение операнда - число nn.

Пример:

3: @(r)+ : косвенно-автоинкрементный

@(r)+
Регистр содержит адрес адреса операнда (т.е. указатель адреса операнда). Содержимое регистра после его использования как указателя адреса операнда автоматически увеличивается на 2.

Пример:

3, r=7: @#nn : абсолютный

@#nn
Число nn лежит в очередном слове команды. nn - абсолютный адрес операнда. Так как вовлечен регистр PC, его значение всегда увеличивается на 2.

Пример:

4: -(r) : автодекрементный

-(r)
Регистр содержит адрес операнда. Содержимое регистра автоматически увеличивается на 1 или на 2 (если команда оперирует словами или вовлечены R6 или R7), а затем используется как адрес операнда.

Пример:

5: @-(r) : косвенно-автодекрементный

@-(r)
Регистр содержит адрес адреса операнда (т.е. указатель адреса операнда). Содержимое регистра автоматически уменьшается на 2. Затем используется как указатель адреса операнда.

Пример:

6: nn(r) : индексный

nn(r)
Число nn лежит в очередном слове команды. Исполнительный адрес операнда вычисляется как сумма числа nn и содержимого регистра r.

Пример:

6, r=7: nn : относительный

nn
индекс лежит в очередном слове команды. После считывания индекса содержимое PC увеличивается на 2. Исполнительный адрес операнда вычисляется как сумма этого индекса и содержимого регистра pc.
Пример:

7: @nn(r) : косвенно-индексный

@nn(r)
Число nn лежит в очередном слове команды. Значение выражения nn и значение регистра r складывают и сумма используется как указатель на адрес операнда.

Пример:

7, r=7: @nn : косвенно-относительный

@nn
индекс лежит в очередном слове команды. После считывания индекса содержимое PC увеличивается на 2. Сумма этого индекса и содержимого регистра pc указывает на ячейку, которая содержит адрес операнда.
Пример:

-- TatyanaDerbysheva - 07 Mar 2011