Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Белош_Лекции_4_курс_2010г.doc
Скачиваний:
27
Добавлен:
16.07.2019
Размер:
2.92 Mб
Скачать

Структура команд.

Существенной новизной PDP-11 является развитая система адресации операндов и использование стека, при обращении к подпрограммам и при обслуживании прерывания. Эти новейшие механизмы PDP-11 стали сегодня нормой для всех микро ЭВМ. В PDP-11 используется безадресные одноадресные и двухадресные команды. Первые два типа команд короткие, а основной или полный формат команды имеют двухадресные команды и структура их следующая.

После кода операции следует адрес источника, а поле адрес приемника (откуда взяли и куда перенесли).

Код операции является главным и он задает структуру команды и размеры операндов.

Список команд.

В этой машине имеются следующие основные команды.

команда

код

CLR

0050

по этой команде онуляется все слово по адресу определяемому операндом.

СLR B

1050

в этом случае обнуляется байт по адресу операнда. Если адрес четный, обнуляется младший байт, если нечетный – старший.

INC

0052

содержимое ячейки или регистра по указанному адресу увеличивается на единицу.

INC B

1052

увеличивается содержимое соответствующего байта на единицу.

DEC

0053

значение содержимого по указанному адресу уменьшается на единицу.

DEC B

1053

уменьшение байта в содержимом по указанному адресу.

MOV

01

(полноформатная команда) содержимое адреса, определенного первым операндом, пересылается по адресу заданным вторым операндом. Содержимое адреса заданное 1 операндом не меняется.

MOV B

11

тоже самое что в предыдущем случае, только работа с байтом.

ADD

06

двуадресная команда, содержимое 1-го операнда складывается с 2м и пересылается по адресу 2го операнда.

SHB

16

содержимое адреса в 1м операнде вычитается из содержимого 2го операнда и результат пересылается по адресу 2го операнда.

CMP

02

сравнение слов

CMP B

12

сравнение байтов содержимое адреса 1го операнда сравнивается с содержимым адреса 2го операнда, в результате вырабатывается коды условий, смотри регистр PS, кот. анализируются командами переходов.

Виды адресаций pdp-11

1. Прямая адресация через регистр.

код – 0; операнд задается в регистре, адрес которого записан в команде.

2. Прямая адресация с автоувеличением.

код – 2; Указанный в команде регистр содержит адрес операнда, после выполнения команды содержимое увеличивается на 2, при работе со словами и на 1 при работе с байтами.

3. Прямая адресация с автоуменьшением.

код – 4; Перед выполнением операции содержимое регистра R т.е. адрес операнда уменьшается на 2 при работе над словами и на 1 при работе над байтами.

4. Индексная адресация.

код – 6; В команде задаются 2 величины, смещение Е и регистр. Смещение Е в команде будет хранится как второе (или треть) слово, следующее за основной командой. Искомый адрес операнда вычисляется путем сложения содержимого регистра и смещения указанного в команде. При выполнении двух/трехсловных команд, счетчик команд увеличивается на величину команды.

Косвенная адресация.

1. Косвенная адресация через регистр.

@Rn; (Rn) – косвенная адресация.

код – 1; Указанная в регистре команда Rn содержит адрес операнда.

2. Косленная адресация с автоувеличением.

@(Rn)+

код – 3; Регистр R содержит адрес адреса операнда (указа адреса операнда), после выполнения команды содержимое регистра увеличивается на 2.

3. Косвенная адресации с автоуменьшением.

@(Rn) –

код – 5; Содержимое регистра уменьшается на 2 и рассматривается как адрес адреса операнда.

4. Косвенная индексная адресация.

@E(Rn)

код – 7;

Здесь в команде, кроме n-го регистра указывается смещение E, складывая это смещение с содержимым регистра, получаем адрес адреса операнда. Величина E- смещение, а содержимое регистра – база. Смещение указывается вторым словом, т.е. команда двухсловная. Счетчик после чтения из памяти команды модернизируется на 2 шага. Т.е. следующая команда будет по адресу 000104. Указатель адреса определяется как сумма содержимого регистра R5 и смещения указан в команде 114, т.е. указатель адреса 001344. В этой ячейке находится адрес операнда, который обнуляется по команде.

Адресация с использованием счетчика команд.

1.Непосредственная адресация.

#E

код – 2; Этот режим адресации обеспечивает работу операндов, заданных непосредственно в команде. При непосредственном способе адресации операнд Е запоминается во втором или третьем слове команды.

2. абсолютная адресация.

В этом режиме величина Е записанная в команде указывается абсолютный адрес, который храниться во втором или третьем слове инструкции, значение этого слова воспринимается как абсолютный адрес операнда.

3. Относительная адресация

код – 6; Этот вид адресации работает как индексная адресация, только в качестве индексного регистра используется счетчик команд. Смещение записывается в команде, хранится во втором или третьем слове инструкции и задается как число, которое прибавляется к содержимому счетчика команд и дает адрес операнда. Следует заметить, что в инструкции в качестве смещения записывается на самом деле абсолютный адрес операнда, а величина смещения, которая должна быть записана во второе слово инструкции вычисляется как адрес операнда минус содержимое счетчика команды.

4. Относительная косвенная адресация

@E

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