masm. как получить выходной файл без PE-headerа и т.д.?;)

Тема в разделе "WASM.BEGINNERS", создана пользователем TerraIncognita, 28 май 2008.

  1. TerraIncognita

    TerraIncognita New Member

    Публикаций:
    0
    Регистрация:
    30 апр 2008
    Сообщения:
    22
    доброй ночи :)
    хотел спросить, как с помощью МАСМа получить выходной файл без PE-headerа ? например, при написании ОС... или вообще, чтоб получить бинарный файл.
    выходные файлы МАСМа ведь PE EXE-файлы. ессно, можно написать код файл... но ведь MODEL TINY - код, стек и данные в одном сегменте и т.д.. или я не так понял... =)

    объясните новичку, как это сделать :)

    P.S. ФАСМ не предлагайте =) я про него знаю. меня просто интересует, как это делается с помощью MASM'а... может просто компоновщик другой надо?
     
  2. KeSqueer

    KeSqueer Сергей

    Публикаций:
    0
    Регистрация:
    19 июл 2007
    Сообщения:
    1.183
    Адрес:
    Москва
    ищется по форуму по "masm bin"
    https://wasm.ru/forum/viewtopic.php?pid=237845#p237845
     
  3. TerraIncognita

    TerraIncognita New Member

    Публикаций:
    0
    Регистрация:
    30 апр 2008
    Сообщения:
    22
    Спасибо за ссылку, я просто не знал, по каким словам искать...
     
  4. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    Вообще-то MASM выдаёт на выходе объектные файлы, а не исполняемые. Исполняемые появляются на выходе компоновщика. Ну а то, что некоторые трансляторы умеют сразу рожать bin-файлы, является исключением, лишь подтверждающим правило. Тем более что написать действительно крупную и сложную вещь типа оси без разбиения на модули проблематично.

    Это модель для COM-файлов MS DOS. Хотя физический сегмент там один, перед собственно программой должен присутствовать так называемый префикс программного сегмента (PSP) длиной 256 байт -- его в процессе загрузки что COM, что EXE-файлов создаёт сама ДОС. Из-за этого код файлов с моделью TINY начинается со смещения 100h, а не с 0, как для "нормального" бинарника.
     
  5. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    SII
    Да, но задается он вручную (org 100). Если не задать, будет с 0 транслироваться.
    TerraIncognita
    Возможно я плохо помню, но была утиль exe2bin или exetobin или в опциях линкера задавалось создание bin (sys? (org 0)) файла. Дальше он переименовывался в .сом ...