Skip to content

dispronesson/pasm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PASM

PASM (PDP-11 Assembly) — 16-битный PDP-11 ассемблер с синтаксисом MACRO-11.

Описание

Ассемблер PASM поддерживает большую часть инструкций архитектуры PDP-11. Использует синтаксис, совместимый с MACRO-11. Ассемблер генерирует сырые бинарные файлы, т. е. в них нет заголовков для загрузки в какую-либо ОС под PDP-11. Он не генерирует объектные файлы, не делает релокацию памяти. Генерируемые файлы нельзя слиновкать, например, линковщиком LINK-11. Он генерирует бинарные файлы, которые можно сразу загружать в память PDP-11 (т. н. работа с голым железом). По умолчанию инструкции генерируются относительно 01000 адреса (октальный). В готовом бинарном файле присутствуют заголовки для прямой загрузки в память PDP-11, как это требовалось при реальной работе с PDP-11 (длина блока данных, адрес загрузки программы, данные программы, контрольная сумма). Выходной файл можно загрузить и выполнить, например, в симуляторе процессора SIMH PDP-11. Также стоит упомянуть, что исходный код писался в ОС Linux и не нацелен на кроссплатформенность, поэтому запуск в других ОС не гарантирует корректную работоспособность.

Установка и запуск

Для установки выполните следующие команды:

$ git clone https://github.com/dispronesson/pasm.git
$ cd pasm
$ make

В каталоге build/debug будет находиться исполняемый файл (pasm).

Для запуска выполните следующую команду:

$ ./build/debug/pasm --help

Использование

Для запуска готовых бинарных файлов рекомендуется это делать в симуляторе процессора SIMH PDP-11.

Выполните следующие команды в симуляторе:

sim> load path/to-your/programm
sim> go

По умолчанию программа загружается по адресу 01000. Адрес следующей инструкции (PC) устанавливается также на этот адрес при загрузке программы в память, так что нет необходимости писать go <address>.

About

16-битный PDP-11 ассемблер с синтаксисом MACRO-11

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published