Есть ли в MASM команда на включение в ASM-файл бинарных данных подобных incbin в NASM Код (Text): UTEXT "IMAGE" dw 0 i41: incbin "Images\1.jpg" или аналогично в FASM Код (Text): icon icon1,icon1_data,'Images/1.ico' cursor cursor1,cursor1_data,'Images\cursor.cur' bitmap bmp,'betty.bmp' или "file" в FASM - директива включающая цепочку байтов из файла, в качестве параметра которой передается имя файла и числовое выражение, указывающее начало цепочки байтов
есть всякие тулзы (типа bin2asm или что-то в этом духе), которые преобразуют бинарщину в асм-сорц (в набор db директив), а ты его уже включаешь в свой проект...
Наверно нет. В masm32 есть утилита inctodb.exe. Конвертирует файлы в исходники. Такие данные я обычно по отдельным *.obj`ам распределяю, что-б быстрей компилировалось.
Mikl___ Аналогично в fasm вообще-то только file. А bitmap, icon и cursor — просто макросы, которые используют директиву file.
Mikl___ наверно обычная include а бинарник конвертишь хатчевской тулзой в файл содержащий Код (Text): BYTE XX .... BYTE XY
Rockphorr, s_d_f, Rel Резко увеличивается объем asm-файла, теряется наглядность punxer да, NASM и FASM не нуждаются ни в компиляторе ресурсов, ни в линкере (хотя в NASM зачем-то используют alink, хотя NASM самодостаточен)
Mikl___ ну вам батенька не угодишь - приблуды которые вам нужны уж слишком специфичны, а универсальный способ вы не хотите - теряется наглядность
ф принципе, можно попробовать попробовать ввести в виде текстовой строки. только как будет с непечатными местами - надо пробовать. хотя эти места можно и цифрами.
Конечно можно допустить, что тебе до сих пор не приходилось линковать программы из более чем 1 объектника. Но ничего сложного в этом нет. Объём увеличится только на инклуд с несколькими externdef`aми.
s_d_f Конечно, приходилось компилировать программы из более чем один obj-файл, но в данном случае мне требуется добавить jpg-файл к основному файлу. Его что в obj- переименовывать?
Нет. Ну например для простоты, будет у тебя 2-байтовый файл. Сперва bin2asm/inctodb... используешь для получения db строк. Получишь довустим какое-нибудь db 0ACh,0DCh. Потом сделаешь исходник типа. Код (Text): ;mydata.asm .386 .model flat,stdcall option casemap:none include mydataext.inc .data Byte1 LABEL BYTE db 0ACh Byte2 LABEL BYTE db 0DCh end И собственно инклуд. Код (Text): ;mydataext.inc externdef Byte1:BYTE externdef Byte2:BYTE mydata.asm ассеблируешь 1 раз, и потом для линкера в коммандную строку добавляешь имя объктника mydata.obj, и всё.
_sheva740 Я и хотел добиться эффекта как с добавлением бинарного файла в ресурсах в виде текстовой строки с именем файла, но без использования компилятора ресурсов, как в NASM и FASM