В 1979 году рабочая группа IEEE под руководством Вэйна Фишера разработала проект стандарта на язык ассемблера. Не для какого-то одного процессора, а вообще в целом для всех.
«With the proliferation of microprocessors, the need to establish standards for the naming of microprocessor instruction sets and assemblers has become critical. This standard sets forth a set of instruction mnemonics and descriptions, provides procedures for consistently naming additional instructions, and establishes standard assembler language characteristics.»
Скачать можно по ссылке: https://dl.acm.org/doi/pdf/10.1145/800088.802820
Но до реального стандарта этот проект так и не дорос, видимо. Что-то не сложилось.
«With the proliferation of microprocessors, the need to establish standards for the naming of microprocessor instruction sets and assemblers has become critical. This standard sets forth a set of instruction mnemonics and descriptions, provides procedures for consistently naming additional instructions, and establishes standard assembler language characteristics.»
Скачать можно по ссылке: https://dl.acm.org/doi/pdf/10.1145/800088.802820
Но до реального стандарта этот проект так и не дорос, видимо. Что-то не сложилось.

no subject
Date: 2023-03-17 08:31 (UTC)no subject
Date: 2023-03-17 11:15 (UTC)Любопытно; но мне кажется, пока стандарт пишут, архитектура убегает вперед, и нужно что-то новое придумывать.
Конечно, для интеловских, в те поры, проблемы не было навалять ассемблер (на форте это одна страничка с таблицей обычно).
no subject
Date: 2023-03-17 15:02 (UTC)no subject
Date: 2023-03-17 15:24 (UTC)Еще пофиговее, когда пишешь для JVM. Последний раз я курочил байткод 6 и 7 лет назад.
no subject
Date: 2023-03-22 19:26 (UTC)Но, кажется, метаассемблер до Си был прикольной идеей, но не было достаточно "хорошего" языка, чтобы его переносить, а после Си всем показалось, что Си и сам стал таким неким "метаассемблером", похоже, на этом остановились. Или просто забыли?
Из книги Д.Баррона "Ассемблеры и загрузчики" упоминание по метаассемблеру в списке литературы датируется 1960 и 1966 годом.
no subject
Date: 2023-03-23 05:31 (UTC)До Си ещё BCPL успел побыть высокоуровневым метаассемблером. Я слышал, в какой-то момент чуть ли не половина системного софта в мире была переписана на BCPL.
no subject
Date: 2023-03-23 12:12 (UTC)А вот идея метаассемблера, в который встроена возможность саморасширяемости, т.е. введение вместе с исходником новых форматов инструкций для трансляции на другую машину, типа настраиваемый кросс-ассемблер, кажется не исчерпана. Думаю, для МА risc ни чем не хуже cisc. Но это надо еще посмотреть. В книге Баррона причиной ставится малая исследованность, хотя мета-ассемблеров было аж 50(Assemblers And Loaders. - David Salomon), а статей крайне мало, упоминаемая в книге, сейчас доступна:
https://dl.acm.org/doi/pdf/10.1145/365230.365264
Переводчик книги в комментариях, пишит, от непереносимости. Хотя если теперь учесть, про существование упомянутого тогда BCPL, на котором можно было написать переносимый МА, в теории, то получается все очень странно. Наверное, это просто сложно. Например реконструированный макроассемблер macro-11 в исходниках просто чудовищный. Каков будет МА? Кому-то вообще проще написать/переписать unix'овый as, зная его досконально, под нужную архитектуру и не париться. Не говоря, что есть еще Yacc или Bison.
no subject
Date: 2023-04-07 05:46 (UTC)В строке 170 файла https://github.com/sergev/bkunix/blob/master/cross-devel/as/as16.c должно быть -376, а вот в строке 162 все правильно. Также в исходника на ассемблере тоже -376. Это срабатывает при ссылке назад псевдоинструкции jbr/jcc, при выходе из дипазона адресации обычной инструкции ветвления.
Вообще ассемблер в MINI-UNIX, переписанный с языка ассемблера на Си, это одна большая диверсия, возможно для советских программистов, куча ошибок, похоже, он ни разу не запускался, кем был написан.
no subject
Date: 2023-04-07 06:59 (UTC)Этот файл as16.c датирован февралём 1987 года в архиве http://ftpmirror.your.org/pub/misc/unixarchive/PDP-11/Distributions/usdl/Mini-Unix/mxas.tar.gz.
Ну что делать, не весь паблик софт проходит тщательное тестирование. 😀