Дорогие посетители.Убедительно просим Вас Загружать имеющуюся у Вас информацию (Файлы образов дисков, Исходники, Книги и т.д.) касающуюся ПЭВМ с архитектурой PDP-11.
Операнд 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
r - регистр, например R0
nn - 16-битное число
0: r : регистровый
r
регистр содержит операнд
Пример:
CLR R3 - очистить содержимое регистра R3.
1: @r или (r) : косвенно-регистровый
@r или (r)
регистр содержит адрес операнда
Пример:
CLR @R3 - очистить содержимое ячейки, адрес которой находится в регистре R3.
CLR (R1) - очистить содержимое ячейки, адрес которой находится в регистре R1.
2: (r)+ : автоинкрементный
(r)+
Регистр содержит адрес операнда. Содержимое регистра после его использования как адреса автоматически увеличивается на 1 или на 2 (если команда оперирует словами или вовлечены R6 или R7).
Пример:
CLR (R3)+ - очистить содержимое ячейки, адрес которой находится в регистре R3. Содержимое регистра R3 увеличить на 2.
CLRB (R3)+ - очистить содержимое ячейки, адрес которой находится в регистре R3. Содержимое регистра R3 увеличить на 1.
CLRB (SP)+ - очистить содержимое ячейки, адрес которой находится в регистре SP. Содержимое регистра SP увеличить на 2.
2, r=7: #nn : непосредственный
#nn
Число nn лежит в очередном слове команды. Так
как вовлечен регистр PC, его значение всегда увеличивается на 2.
Значение операнда - число nn.
Пример:
MOV #12, R3 - поместить число 12 в регистр R3. Эта команда состоит из 2 слов: 012703 и 000012 (лежит в следующем слове)
3: @(r)+ : косвенно-автоинкрементный
@(r)+
Регистр содержит адрес адреса операнда (т.е.
указатель адреса операнда). Содержимое регистра после его использования
как указателя адреса операнда автоматически увеличивается на 2.
Пример:
CLR @(R3)+ - Регистр R3 содержит указатель адреса ячейки, которая очищается. Затем содержимое регистра R3 увеличивается на 2.
3, r=7: @#nn : абсолютный
@#nn
Число nn лежит в очередном слове команды. nn -
абсолютный адрес операнда. Так как вовлечен регистр PC, его значение
всегда увеличивается на 2.
Пример:
MOV @#12, R3 - запомнить содержимое ячейки 12 в регистре R3. Эта команда состоит из 2 слов: 012703 и 000012 (лежит в следующем слове)
4: -(r) : автодекрементный
-(r)
Регистр содержит адрес операнда. Содержимое регистра автоматически увеличивается на 1 или на 2 (если команда оперирует словами или вовлечены R6 или R7), а затем используется как адрес операнда.
Пример:
CLR -(R3) - Содержимое регистра R3 уменьшить на 2. Очистить содержимое ячейки, адрес которой находится в регистре R3.
CLRB -(R3) - Содержимое регистра R3 уменьшить на 1. Очистить содержимое ячейки, адрес которой находится в регистре R3.
CLRB -(SP) - Содержимое регистра SP уменьшить на 2. Очистить содержимое ячейки, адрес которой находится в регистре SP.
5: @-(r) : косвенно-автодекрементный
@-(r)
Регистр содержит адрес адреса операнда (т.е.
указатель адреса операнда). Содержимое регистра автоматически
уменьшается на 2. Затем используется как указатель адреса операнда.
Пример:
CLR @-(R3) - Содержимое регистра R3 уменьшается на 2. Регистр R3 содержит указатель адреса ячейки, которая очищается.
6: nn(r) : индексный
nn(r)
Число nn лежит в очередном слове команды.
Исполнительный адрес операнда вычисляется как сумма числа nn и
содержимого регистра r.
индекс лежит в очередном слове команды. После
считывания индекса содержимое PC увеличивается на 2. Исполнительный
адрес операнда вычисляется как сумма этого индекса и содержимого
регистра pc.
Пример:
MOV 12, R3 - запомнить содержимое ячейки 12 в регистре
R3. Эта команда состоит из 2 слов (см. подробнее ниже о
позиционно-независимых программах).
7: @nn(r) : косвенно-индексный
@nn(r)
Число nn лежит в очередном слове команды.
Значение выражения nn и значение регистра r складывают и сумма
используется как указатель на адрес операнда.
Пример:
CLR @114(R4) - пусть регистр R4 содержит число 100, а ячейка 214 число 2000. Тогда
складываем 114 и содержимое регистра R4: 114+100=214
берем число из ячейки 214, получаем 2000 - это адрес операнда.
очищаем ячейку с адресом 2000.
7, r=7: @nn : косвенно-относительный
@nn
индекс лежит в очередном слове команды. После
считывания индекса содержимое PC увеличивается на 2. Сумма этого индекса
и содержимого регистра pc указывает на ячейку, которая содержит адрес
операнда.
Пример:
MOV @12, R0 - запомнить в регистр R0 содержимое
ячейки, адрес которой находится в ячейке 12. Эта команда состоит из 2
слов (см. подробнее ниже о позиционно-независимых программах).