Date: 2018-01-23 19:47 (UTC)
vak: (Default)
From: [personal profile] vak
Здесь несколько вопросов, буду отвечать постепенно.

Насчёт ассемблера. Диалектов было много, это верно. Я бы взял за основу стиль современного юниксного ассемблера. У меня сохранились исходники ассемблера для Эльбруса-Б, можно начать с него (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
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org