Мои файлы для UASM. Пока не настроено полностью, в точности msvcrt.inc, там надо прописать все правильные прототипы для контроля параметров, иначе при неправильных параметров компилятор не выдаёт ошибку, а программа не работает, лишний гемор при отладке. ЗЫ Блин, три одинаковых файла загрузил.
Кстати, такие функции как printf, sprintf я сделал через макрос, так что поддерживает непосредственный ввод строки, взятие адреса и кастинг real4 -> real8 Вот пример. Код (ASM): local param:real4, NameFunc[128]:byte ... printf("Param = %f, Name funct: '%s'\n", ^param, &NameFunc) И вроде некоторые макросы должны работать в МАСМ, но не уверен, делал давно. И ещё align_proc выравнивает процедуры байтами 0CCh, чтобы обмануть IDAPro
Кстати, и про это я думал и занимался недавно - только сделал пока на FASM64. Нужно помощи у Mikl___'а попросить для реализации на MASM64, ну а может и сам справлюсь.
HESH, макросы которые с масм идут. У меня переделанные, например, в строке нельзя указывать символы !<>() и я постоянно забываю, как там надо вызывать их не явно, и чтобы постоянно помнить, надо так, /|/{/}/[/] как видно по форме помнишь, это и в тексте лучше видно. В стандартных макросах там по другому сделано и проблемы с real4, надо вручную кастинг делать, строки тоже криво работают, строка должна объявляется в секции .const, выравниваться на 4 или 8, и ноль терминальный. Вот и приходится свои велосипеды изобретать, потому что стандартные работают криво. Я ещё придумал как проблему запрещённых символов обойтись в UASM, просто строка на char разбивается, т.е на цифровые макропеременные, и никах проблем, назовём функцию например FORCHAR, работает как FORC, но выдаёт число символа. Во обще макросистему надо переделать, создав простой внутренний ЯП, упрощенный Lua, есть числа целые, дробные, строки, таблицы и нужный набор функций.
Недоделанный вариант для х64 С х64 у меня как раз проблемы, не доделано, не систематизировано. По этому в основном использую х86-32, там всё получше.
Обновление macros.asm и msvcrt.inc Поместить в \assemblers\include . Так у меня настроены пути, msvcrt так и не доделал, я обычно добавляю прототипы по мере надобности.