1801-(pdp11) (961164), страница 2
Текст из файла (страница 2)
В косвенно-регистровом методе содержимое выбранного регистра является адресом операнда. В других косвенных методах содержимое регистра позволяет найти адрес операнда, а затем сам операнд.
II. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ
Лабораторная работа выполняется с помощью программы-эмулятора микропроцессора PDP 11.
1. Запустить программу PDP 11
2. Перечень команд управления программы-эмулятора приведен в табл.2.
Таблица 2
№ пп | Команда эмулятора | Описание команды |
1. | d Приемник (Значение операнда) | Занести указанное значение в приемник (ячейку памяти или регистр ri, i=0..7), например: d 1000 005064, d r4 000777 |
2. | ex Источник | Посмотреть содержимое источника (ячейки памяти или РОНа), например: ex 1000, ex 1000-1010, ex r4 |
3. | go Адрес | Запустить программу с указанного адреса, go 1000 |
4. | h | Помощь |
5. | q | Выход из программы-эмулятора |
-
Пример.
Команда SWAB – перестановка байтов. При использовании прямой адресации к четвертому регистру – код команды 000304.
d 1000 000304
d 1002 000000
d r4 000777
go 1000
ex r4
r4: 177401
| 0 | 0 | 7 | 7 | 7 |
1 5р 8р 7р 0р
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
старший байт | младший байт | ||||||||||||||
1 | 7 | 7 | 4 | 0 | 1 |
4. Команды с прямой регистровой адресацией .
4.1. Команда INС Ri (j=0,1…7). По этой команде к содержимому регистра добавляется единица.
Выполнить команду инкрементирования третьего регистра (код 005203).
Примечания:
-
Для исключения дополнительных ошибок в конце программы (после последней исполняемой команды) рекомендуется помещать команду HALT (код 000000).
-
Для исследования команд использовать адресное пространство с 1000 до 17776 (нулевой банк памяти).
4.2. Команда ADD Ri, Rj (i,j=0…7). По этой команде осуществляется сложение двух операндов. Результат заносится по адресу второго операнда.
Сложить содержимое второго и четвертого регистров (код 060204).
4.3. Команда СОМВ Ri инвертирует содержимое младшего байта регистра
(с 0р по 7р).
Выполнить команду СОМВ для четвертого регистра (код 105104).
5. Команды автоинкрементной адресацией
Команда CLR (Ri) + обнуляет содержимое ячейки, адрес которой занесен в регистр Ri. Одновременно содержимое самого регистра увеличивается на 2.
Выполнить команду CLR, обнулив ячейку по адресу 1200 используя автоинкрементную адресацию пятого регистра (код 005025).
6. Команды индексной адресацией
Команда CLR ХХХХХХ (Ri) обнуляет ячейку по адресу, определяемому как сумма содержимого регистра Ri и индексного слова ХХХХХХ, следующего за командой.
Выполнить команду CLR обнулив ячейку по адресу 2400 используя индексную адресацию четвертого регистра (код 005064).
7. Команды с косвенной регистровой адресацией
7.1. Команда CLR @ Ri обнуляет ячейку, адрес которой записан в регистр Ri. Выполнить команду CLR обнуления ячейки по адресу 1020, используя для адресации пятый регистр (код 005015).
7.2. Команда DEC @ (Ri)+. По этой команде содержимое ячейки, адрес которой находится в регистре Ri, уменьшается на единицу, а содержимое самого регистра Ri увеличивается на два.
Выполнить команду DEC, изменив содержимое ячейки по адресу 1040, используя второй регистр 005322.
8. Команды с непосредственной адресацией.
8.1. Команда BIS#ХХХХХХ,Ri. По этой команде осуществляется логическое сложение содержимого регистра Ri с числом ХХХХХХ (константой), следующим за командным словом.
Выполнить команду BIS логически сложив содержимое регистра R0 с числом 707 (код 052700).
8.2. Команда MOV#ХХХХХХ, Ri загружает регистр Ri содержимым ячейки памяти, следующей за командой.
Выполнить команду MOV загрузив число 200 в нулевой регистр (код 012700).
9. Команды с прямой (абсолютной) адресацией.
Команда JMP @ # ХХХХХХ. По этой команде осуществляется безуслов-
ный переход по адресу, расположенному в следующей ячейке памяти.
С помощью команды JMP(код000137) и CLR(код005037) осуществить обнуление ячейки 1100.
IV. ТРЕБОВАНИЯ К ОТЧЕТУ.
Отчет по лабораторной работе должен содержать тексты программ в соответствии с пп. 4…9 с указанием содержимого использованных РОНов и ячеек памяти до и после выполнения команды. Например, для команды SWAB:
1000 000304
r4 000777 - операнд
r4: 177401 - результат
Таблица 3
Список необходимых команд микропроцессора К1801ВМ1
Мнемоника | Команда | Код | |
Одноадресные команды | |||
CLR (B) | 0 (d) | Очистка | *050DD |
COM(B) | Инвертирование | *051DD | |
INC(B) | (d) + 1 (d) | Прибавление единицы | *052DD |
DEC(B) | (d) - 1 (d) | Вычитание единицы | *053DD |
NEG(B) | Изменение знака | *054DD | |
| Арифметический сдвиг вправо(d) / 2 (d) | *062DD | |
| Арифметический сдвиг влево(d) * 2 (d) | *063DD | |
| Циклический сдвиг вправо | *060DD | |
| Циклический сдвиг влево | *061DD | |
ADC(B) | Прибавление переноса | *055DD | |
SBC(B) | Вычитание переноса | *056DD | |
SWAB | Перестановка байтов | 0003DD | |
MEPS | Чтение ССП | 1067DD | |
MTPS | Запись ССП | 1064SS | |
Двухадресные команды | |||
MOV(B) | (s) (d) | Пересылка | *ISSDD |
CMP(B) | Сравнение | *2SSDD | |
ADD | (d) + (s) (d) | Сложение | 06SSDD |
SUB | (d) - (s) (d) | Вычитание | 16SSDD |
BIT(B) | (d) (s) (d) | Логическое умножение | *3SSDD |
BIC(B) | Очистка разрядов | *4SSDD | |
BIS(B) | (d) (s) (d) | Логическое сложение | *5SSDD |
XOR | Исключающее ИЛИ | 074RDD | |
Команды управления программой | |||
ВСС | Ветвление, если нет переноса | 103000 | |
BCS | Ветвление, если перенос | 103400 | |
JMP | Безусловный переход | 0001DD | |
Команды управления микропроцессором | |||
HALT | Останов | 000000 | |
WAIT | Ожидание | 000001 | |
RESET | Сброс внешних устройств | 000005 |
Приложение 1
14