Особенности
Для представления одного байта MIX машины используются шесть бит,
Устройства ввода/вывода предсталяют собой просто файлы (за исключением терминала),
Задержек при обмене данными с устройствами ввода/вывода нет :) Если это будет забавно, то реализую в следующей версии.
Программы скармливаемые эмулятору не должны содержать синтаксических ошибок --- режим ассемблирования команд вообще предназначался для отладки самого эмулятора, так уж получилось, что я его оставил.
``Лишние'' символы в кодировке Кнутта заменены на знаки вопроса --- я не сообразил, как заставить GCC переваривать UTF8, может подскажет кто.
Команды эмулятора
dr --- вывести на экран содержимое регистров и флагов. Screenshot.
dm <addr> <count> --- вывести на экран содержимое ячеек памяти. Screenshot.
em <addr> <value> --- записать число в ячейку памяти. Команды записи числа в регистр нет ---
она без надобности, так как у самой MIX есть занесение константы в регистр:)
run <addr-start> <addr-stop> --- запустить на исполнение код.
asm <addr> <instruction> --- самая мощная команда, ассемблирует одну инструкцию MIX по указанному адресу.
Вот как выглядит текст программы из книги Кнутта Ссылка и
результат её запуска.
Понятно, что такой текст писать не очень весело, поэтому нужен нормальный ассемблер.
Чтобы собрать эмулятор вместе с документацией, потребуются GCC version 4.1.2 20061115 (prerelease), транслятор [[noweb]] version 2.11,
``украшатель'' кода С++ dpp version 0.2.1 copyright Dan Schmidt и издательская система LaTeX 2e <2003/12/01>.
Комментариев нет:
Отправить комментарий