Дизассемблер Д3-28 на базе x86

Программа дизассемблера для Д3-28 предназначена для получения из набранных вручную или оцифрованных с магнитофонных кассет кодов программ удобочитаемого текста на машинном языке Д3-28.
На самой Д3-28 данную функцию могли выполнять такие программы, как Д-8, МАШЯЗ, ЭТ-10, СПП-8 МХТИ и другие. Сейчас же удобно использовать персональные компьютеры на базе системы команд x86, которые очень широко распространены.
Представленная программа дизассемблера написана на скриптовом языке Python3. С учетом того, что Python является кроссплатформенным языком, дизассемблером также можно пользоваться в различных ОС. Изложенное далее проверено на операционной системе Linux. В ОС Windows не проверялось за неимением таковой у автора. Если кто проверит, прошу дать отзыв, указать на недоработки. Код программы открыт. Пожелания по изменениям и улучшениям будут приниматься с благодарностью. Критику за некрасивый или неоптимальный код отметаю заранее — автор ни разу не программист.

Распечатка программы в мнемокодах Д3-28, полученная дизассемблером

Инструкция по работе с дизассемблером
Устанавливать Python на компьютер не обязательно, так как программа скомпилирована в исполняемый файл.
Скачивем отсюда архив. Распаковываем куда хотим. Проверяем, установлен ли бит исполнения в файле dizD3-28.bin. Если не установлен, то даем файлу права на выполнение.

В этот же каталог помещаем текстовый файл с командами Д3-28 в формате имитатора, который надо дизассемблировать. О форматах подробнее здесь.
Для проверки рекомендую сначала дизассемблировать тестовую программу «testfull» (находится в одном архиве с дизассемблером). Этот текстовый файл содержит все команды «Справочника программиста Д3-28» (из таблицы 23).
Порядок дизассемблирования:
— в командной строке терминала даем команду «dizD3-28.bin»
— появится предложение показать справку. Первый раз можно и прочитать.
— после отказа от справки появится приглашение ввести имя дизассемблируемого файла. Первый раз для пробы вводим имя файла «testfull». В другой раз вводите имя Вашего файла.
— программа быстро завершает дизассемблирование подсказкой, где искать листинг ассемблерного текста. Это обычный текстовый файл. Берем его оттуда и делаем, что нужно.
Визуально познакомиться, как работать с программой, можно на этой странице.

Я обычно для удобства работы открываю листинг в LibreOffice. Затем устанавливаю параметр «Формат-Колонки» в две или три штуки. Листинг сам собою аккуратно размещается в две или три колонки. И листов меньше и читать удобнее. Шрифт лучше выбрать моноширинный, например Courier New — все колоночки станут ровными, листинг будет красивым.
Все. Ответы на вопросы в форуме. А не захотите заморачиваться — высылайте коды мне, я вышлю дизассемблированный текст.

Виталий

Ниже страничка дизассемблированного Бэйсика 3А Д3-28 в трехколоночном виде. Если байт имеет визуальное представление на дисплее в соответствии с таблицей 24 «Справочника программиста», то он отображается на распечатке в колонке после адреса соответствующим символом, если байта нет в табл.24, то отображается точка (для красоты). Так легче искать текстовые фрагменты в программах (на приведенной странице они очень хорошо видны, см. с адреса 1376). Такой функции в других дизассемблерах не встречал.

Страница листинга Бэйсика 3А, полученного дизассемблером и форматированного в три колонки в LibreOffice