Хочу встроить в скриптовый язык возможность использования ассемблерных вставок, алгоритм примерно такой, интерпретатор размещает в стеке данные, в формате _stdcall, и передает указатель на стек в ассемблерную процедуру, эта процедура сама снимает с данные со стека обрабатывает их и возвращает туда же результат. Разместить откомпилированный ассемблерный код в экзешнике, и связать его с байт-кодом интерпретатора для меня не проблема. Сложность представляет компиляция текста ASM процедуры в бинарник, перевод команд типа push, jmp мне понятен, вместо них надо подставить их опкоды. Однако как переводить строки, константы, метки? Смотрел исходные коды некоторых ассемблерных компиляторов, но они все создают исполняемые файлы, это не то что мне нужно. Подскажите ссылки на доки по созданию inline ассемблеров.
SoftWire is a run-time x86 assembler, written in C++. It can be used as a JIT compiler back-end for scripting languages, or for dynamic code generation of optimized inner loops. а вообще, fasm не сложно доработать - он же сначала в память всё компилит, а потом в файл пишет
а вообще, fasm не сложно доработать - он же сначала в память всё компилит, а потом в файл пишет А где этот fasm можно скачать?
fasm можно скачать с wasm.ru или с офсайта. компилятор от VC.NET 7.1 microsoft раздаёт бесплатно. ЗЫ: afaik PowerBasic тоже использует fasm для компиляции
fasm можно скачать с wasm.ru или с офсайта. компилятор от VC.NET 7.1 microsoft раздаёт бесплатно. ЗЫ: afaik PowerBasic тоже использует fasm для компиляции Спасибо за инфу! Кстати, как PowerBasic использует FASM??? Никогда об этом не слышал
Как и многие другие компиляторы - генерирует asm файл и отдает его ассемблеру. Про PowerBasic 100% ручаться не могу, Privalov упоминал про то, что Раньше PowerBasic использовал masm, а теперь fasm (может это было про другой бейсик?)
Как и многие другие компиляторы - генерирует asm файл и отдает его ассемблеру. Это не так, PowerBASIC сразу создает EXE и DLL без использования асма, у меня есть две версии этого компилятора PowerBASIC for Windows 7.04 и PowerBASIC Console Compiler 3.04 Privalov упоминал про то, что Раньше PowerBasic использовал masm, а теперь fasm Ты ошибся, это было интервью со Стивеном Хатчессоном, автором пакета MASM32, там он говорил, что использует в своей работе PowerBASIC так, как у него очень хороший встроенный ассемблер. По моему, Хатчессон, был одним из разработчиков PowerBASIC`а. Кстати, там не только хороший ассемблер, но и сам язык очень мощный и гибкий. По синтаксису напоминает смесь Visual Basic и ANSI C, я например после изучения PowerBASIC отказался от использования C компилеров, "LCC Win32" и "Pelles C for Windows", так как они проигрывают PowerBASIC`у в размере создаваемых экзешников и скорости их работы.
jangle > "Сразу" невозможно в принципе, даже fasm использует 3 стадии, причём на последнеё может выполняться несколько проходов. А fasm там внутри сидит - asm файл создаётся в памяти и т.д. > Я читал про это на board.flatassembler.net. В чём я мог ошибиться - только в названии бейсика (хотя я других не знаю). К сожалению, через поиск не могу найти, видимо это было в heap, там топы подрезаются через месяц... > Гы, да чего с LCC-то сравнивать (Pelles C - это он же, доработанный)? Это же "учебный" компилятор, приложение к книжке.
А мне кажеться что ето PureBasic изпользует FASM. PureBasic NASM использует, это я точно знаю. К сожалению, через поиск не могу найти, видимо это было в heap, там топы подрезаются через месяц... Можешь на WASM.RU посмотреть эту статью http://wasm.ru/article.php?article=hutch А fasm там внутри сидит - asm файл создаётся в памяти и т.д. Первая версия PowerBASIC вышла в 1996 году, спрашивается какой еще fasm существовал в те времена? Да и потом, все таки там фирма серьезная, компилятор у них свой, и никакой fasm там рядом не валялся )
johnfound Спасибо, а то я перепутал. Что PureBasic, что PowerBasic - почти одинаковые названия . Про него Privalov и говорил. jangle > В этой статье нет топиков с форума fasm!
Извеняюсь за жуткий оффтом вопрос к .. jangle а не мог бы ты поделиться PowerBASIC Console Compiler 3.04 а то довно ищу +)
Извеняюсь за жуткий оффтом вопрос к .. jangle а не мог бы ты поделиться PowerBASIC Console Compiler 3.04 а то довно ищу +) Вот тут посмотри, http://vbnet.ru/forum/show.aspx?id=66011 недавно от туда качал