Здесь несколько вопросов, буду отвечать постепенно.
Насчёт ассемблера. Диалектов было много, это верно. Я бы взял за основу стиль современного юниксного ассемблера. У меня сохранились исходники ассемблера для Эльбруса-Б, можно начать с него (https://github.com/besm6/micro-besm/blob/master/toolchain/as/as.c). Проще всего выдавать бинарник в формате a.out, и потом отдельно конвертировать его в HEX для загрузки в FPGA. Потом разберёмся. Формат a.out даят возможность приспособить линкер.
Синтаксис примерно такой: https://github.com/besm6/micro-besm/blob/master/toolchain/lib/u_mod_u.s Можно немного осовременить в мелочах. Переключать в режим бэсм6 и обратно можно псевдокомандами типа ".set besm6" и ".set microbesm". При этом меняется набор доступных машинных команд и разрядность операндов и адреса.
Английские мнемоники пошли от автокода MADLEN для той же БЭСМ-6. Подробности есть в мемуарах автора, Анатолия Ивановича Волкова: http://retro.wm.ru/retr2.htm
no subject
Date: 2018-01-23 19:47 (UTC)Насчёт ассемблера. Диалектов было много, это верно. Я бы взял за основу стиль современного юниксного ассемблера. У меня сохранились исходники ассемблера для Эльбруса-Б, можно начать с него (https://github.com/besm6/micro-besm/blob/master/toolchain/as/as.c). Проще всего выдавать бинарник в формате a.out, и потом отдельно конвертировать его в HEX для загрузки в FPGA. Потом разберёмся. Формат a.out даят возможность приспособить линкер.
Синтаксис примерно такой: https://github.com/besm6/micro-besm/blob/master/toolchain/lib/u_mod_u.s
Можно немного осовременить в мелочах. Переключать в режим бэсм6 и обратно можно псевдокомандами типа ".set besm6" и ".set microbesm". При этом меняется набор доступных машинных команд и разрядность операндов и адреса.
Таблицы машинных команд можно генерить автоматически, из скрипта на питоне. Я подготовил исходные данные в формате JSON: команды бэсм6 (https://github.com/besm6/micro-besm/blob/master/doc/opcodes/besm6.json) и команды 64-битного режима (https://github.com/besm6/micro-besm/blob/master/doc/opcodes/native.json).
Английские мнемоники пошли от автокода MADLEN для той же БЭСМ-6. Подробности есть в мемуарах автора, Анатолия Ивановича Волкова: http://retro.wm.ru/retr2.htm