-
Notifications
You must be signed in to change notification settings - Fork 0
Home
SPOM - это модель вычислительной машины со своим набором команд и форматом исполняемых файлов.
Сама машина и вспомогательные компоненты написаны на Java. Минимальная версия, которая необходима для запуска - Java 8.
Вспомогательные компоненты представляют собой:
- Библиотеку классов (необходима для работы всех элементов)
- Кросс-ассемблер
- Компоновщик
Для начала работы нужно ознакомиться с набором команд машины и написать программу на языке ассемблера, или взять уже готовую программу из списка примеров и сохранить её в файл, допустим, в source.asm
.
Далее её нужно оттранслировать в машинный код с помощью ассемблера:
smasm source.asm
После трансляции в рабочей папке программы появятся 4 файла, соответствующие секциям исполняемого файла:
-
smi
- секция включений -
smd
- секция данных -
smc
- секция кода -
sme
- секция внешних символов
Все файлы сразу могут не присутствовать ввиду того, что в программе нет каких-либо секций.
На этом шаге создаём исполняемый файл с помощью команды:
smlink -s -e source
Компоновщик подберёт необходимые секции в файлах, созданных на предыдущем шаге, и соберёт их в один исполняемый файл source.smx
Программа готова, теперь осталось её выполнить. Для этого запускаем машину:
spom
Во вкладке Machine state
в поле Program
указываем полное имя файла программы, которую хотим выполнить. При необходимости в поле Lib path
можно указать путь к папке, где лежат необходимые для динамической компоновки библиотеки.
Нажимаем на кнопку Load
для загрузки программы.
После загрузки программы можно:
- во вкладке
Input
задать входные данные в виде чисел, разделённых пробелом (поле Bytes) - во вкладке
Memory
посмотреть содержимое памяти машины - запустить непрерывное выполнение программы с помощью кнопки
Continue
- начать выполнение программы пошагово с помощью кнопки
Step
, а во вкладкеDebugger
смотреть текущее содержимое регистров и команду, которая будет выполнена на данном шаге.
Кнопка Stop
останавливает пошаговое выполнение программы и возвращает машину в исходное состояние.
После выполнения программы во вкладке Output
можно посмотреть вывод программы.