Включение в ASM-файл бинарных данных

Тема в разделе "WASM.BEGINNERS", создана пользователем Mikl___, 9 апр 2011.

  1. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.882
    Есть ли в MASM команда на включение в ASM-файл бинарных данных подобных incbin в NASM
    Код (Text):
    1. UTEXT "IMAGE"
    2. dw 0
    3. i41: incbin "Images\1.jpg"
    или аналогично в FASM
    Код (Text):
    1. icon        icon1,icon1_data,'Images/1.ico'
    2.   cursor cursor1,cursor1_data,'Images\cursor.cur'
    3. bitmap bmp,'betty.bmp'
    или "file" в FASM - директива включающая цепочку байтов из файла, в качестве параметра которой передается имя файла и числовое выражение, указывающее начало цепочки байтов
     
  2. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.315
    есть всякие тулзы (типа bin2asm или что-то в этом духе), которые преобразуют бинарщину в асм-сорц (в набор db директив), а ты его уже включаешь в свой проект...
     
  3. s_d_f

    s_d_f New Member

    Публикаций:
    0
    Регистрация:
    15 май 2008
    Сообщения:
    342
    Наверно нет. В masm32 есть утилита inctodb.exe.
    Конвертирует файлы в исходники.
    Такие данные я обычно по отдельным *.obj`ам распределяю, что-б быстрей компилировалось.
     
  4. punxer

    punxer Андрей

    Публикаций:
    0
    Регистрация:
    16 окт 2006
    Сообщения:
    1.327
    Адрес:
    Ржев
    Mikl___
    в фасм и насм это не грузится в ресурсы?
     
  5. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    Mikl___
    Аналогично в fasm вообще-то только file. А bitmap, icon и cursor — просто макросы, которые используют директиву file.
     
  6. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.624
    Адрес:
    Russia
    Mikl___
    наверно обычная include а бинарник конвертишь хатчевской тулзой в файл содержащий

    Код (Text):
    1. BYTE    XX
    2. ....
    3. BYTE    XY
     
  7. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.882
    Rockphorr, s_d_f, Rel
    Резко увеличивается объем asm-файла, теряется наглядность
    punxer
    да, NASM и FASM не нуждаются ни в компиляторе ресурсов, ни в линкере (хотя в NASM зачем-то используют alink, хотя NASM самодостаточен)
     
  8. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.624
    Адрес:
    Russia
    Mikl___
    ну вам батенька не угодишь - приблуды которые вам нужны уж слишком специфичны, а универсальный способ вы не хотите - теряется наглядность
     
  9. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    ф принципе, можно попробовать попробовать ввести в виде текстовой строки. только как будет с непечатными местами - надо пробовать. хотя эти места можно и цифрами.
     
  10. s_d_f

    s_d_f New Member

    Публикаций:
    0
    Регистрация:
    15 май 2008
    Сообщения:
    342
    Конечно можно допустить, что тебе до сих пор не приходилось линковать программы из более чем 1 объектника. Но ничего сложного в этом нет. Объём увеличится только на инклуд с несколькими externdef`aми.
     
  11. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.882
    s_d_f
    Конечно, приходилось компилировать программы из более чем один obj-файл, но в данном случае мне требуется добавить jpg-файл к основному файлу. Его что в obj- переименовывать?
     
  12. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    А почему не в ресурсы?
     
  13. s_d_f

    s_d_f New Member

    Публикаций:
    0
    Регистрация:
    15 май 2008
    Сообщения:
    342
    Нет. Ну например для простоты, будет у тебя 2-байтовый файл.

    Сперва bin2asm/inctodb... используешь для получения db строк.
    Получишь довустим какое-нибудь db 0ACh,0DCh.
    Потом сделаешь исходник типа.
    Код (Text):
    1. ;mydata.asm
    2. .386
    3. .model flat,stdcall
    4. option casemap:none
    5. include mydataext.inc
    6. .data
    7. Byte1 LABEL BYTE
    8.     db 0ACh
    9. Byte2 LABEL BYTE
    10.     db 0DCh
    11. end
    И собственно инклуд.
    Код (Text):
    1. ;mydataext.inc
    2. externdef Byte1:BYTE
    3. externdef Byte2:BYTE
    mydata.asm ассеблируешь 1 раз, и потом для линкера в коммандную строку добавляешь имя объктника mydata.obj, и всё.
     
  14. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.882
    s_d_f
    Спасибо, буду пробовать!
     
  15. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.882
    _sheva740
    Я и хотел добиться эффекта как с добавлением бинарного файла в ресурсах в виде текстовой строки с именем файла, но без использования компилятора ресурсов, как в NASM и FASM
     
  16. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    s_d_f
    Интересно, спасибо.
    )))