Программирующим на языке ассемблера - ml64
Одним из моих работающих проектов является транслятор с языка Люкс на язык майкрософт-ассемблера.
Этот транслятор среди операторов самого языка Люкс распознаёт построчные инлайн-вставки кодов команд на языке ассемблера и также компилирует их, вместе с операторами языка Люкс в выходной файл на языке ассемблера.
Функционально - это то же самое, что и инлайн-ассемблер в языке майкрософт-си.
Программист, владеющий языком ассемблера, может программировать также традиционные структурные конструкции вида SKIP (GO TO), IF-THEN-ELSE-ENDIF, SWITCH, DO-WHILE, и другие традиционные императивные и декларативные операторы и конструкции языка Люкс, перемежая их с операторами ассемблера, кодирующими более экзотические, специфические, редкие, но необходиые команды процессора.
Вставка инлайн-команд асеемблера в языке Люкс выглядит следующим образом:
#"
Команда ассемблера
...
Команда ассемблера
"
Таким образом, программист может использовать преимущества структурности, а также компактности и обозримости кода на языке Люкс, вместе со спецификой команд ассемблера для конкретного процессора, что даёт наиболее оптимальное сочетание всех преимуществ - и языка Люкс, и языка ассемблера.
Ниже приведены ссылки на исходный текст такой программы и результаты трансляции:
| Исходный текст на языке Люкс-ассемблер. |
| Редактированный листинг языка Люкс. |
| Редактированный текст на языке ассемблера. |
| Редактированный листинг языка ассемблера. |
Сравнивая и анализируя в целом и построчно эти тексты можно в большей степени понять особенности того и другого языка.
***
