PDP-11 — это серия 16-разрядных мини-ЭВМ компании DEC, серийно производившихся и продававшихся в 1970-80-х годах.
Наш проект — это эмулятор PDP-11. В силу ограниченности нашего времени на разработку, мы реализовали лишь часть функций.
На данный момент в нашем эмуляторе реализована функция загрузки программы, которая может включать в себя следующие команды:
add Сложение
mov Присваивание
movb Побитовое присваивание
cmp Сравнение двух слов без их изменения
cmpb Сравнение двух байтов без их изменения
sob Суммирование массива целых чисел
clr Обнуление регистра
tst Тестовая команда выставления флагов N и Z, а V, C на 0
tstb Тестовая команда выставления флагов N и Z, а V, C на 0
ccc Выставление всех флагов на 0
cln Выставление флага N на 0
clz Выставление флага Z на 0
clv Выставление флага V на 0
clc Выставление флага C на 0
scc Выставление всех флагов на 1
sen Выставление флага N на 1
sez Выставление флага Z на 1
sev Выставление флага V на 1
sec Выставление флага C на 1
br Br (Ветвление)
bcc Br, если C = 0
bcs Br, если C = 1
beq Br, если Z = 0
bge Br, если N и V = 0
bgt Br, если Z или (N и V) = 0
bhi Br, если C или Z = 0
ble Br, если Z или (N и V) = 1
blt Br, если N и V = 1
blo Br, если C = 1
bmi Br, если N = 1
bne Br, если Z = 1
bpl Br, если N = 0
bvc Br, если V = 0
bvs Br, если V = 1
halt Остановка программы
nop Нет операций
После того как вы скачали весь исходный код эмулятора вам нужно будет запустить его. Для этого можно использовать командную строку Ubuntu:
- Запустите командную строку Ubuntu;
- Перейдите в директорию с файлом
pdp11.exe
; - Запустите
Makefile
с помощью командыmake
; - После компиляции, запустите эмулятор командой
./pdp11.exe
; - Вы увидите USAGE:
USAGE: pdp11.exe [options] [file]
Options:
-d set debug print-lvl
-t set trace print-lvl
File:
filepath путь до вашей программы Пример: ../programs/my_pr.o
- Приятного использования.
Возможно наши тесты Вам пригодятся.
Для того, чтобы протестировать на эмуляторе PDP-11 свою программу вам понадобится:
Чтобы написать программу, которая будет принята эмулятором вам потребуется:
- Напишите ваш ассемблер-код в виде текстового файла;
- Запустите с помощью командной строки переводчик
as11.exe
. Чтобы создать файл, который будет содержать машинный код для эмулятора PDP-11, вам нужно ввести следующую команду:
>./as11.exe -l [listing] -o [object] [your program]
[listing] Путь для файла listing *.l Пример: /tests/sum/mytest_sum.l
[object] Путь для объектного файла *.o Пример: /tests/sum/mytest_sum.o
[your program] Ваша программа на ассемблере Пример: /tests/sum/mytest_sum
Пример:
>./as11.exe -l /tests/sum/mytest_sum.l -o /tests/sum/mytest_sum.o /tests/sum/mytest_sum
... //Мы здесь
|__Folder1
|__Folder2
|__tests
. |__sum
. . |__mytest_sum
. . |__mytest_sum.l
. . |__mytest_sum.o
. |__subtr
. |__div
|__Folder3