доброй ночи хотел спросить, как с помощью МАСМа получить выходной файл без PE-headerа ? например, при написании ОС... или вообще, чтоб получить бинарный файл. выходные файлы МАСМа ведь PE EXE-файлы. ессно, можно написать код файл... но ведь MODEL TINY - код, стек и данные в одном сегменте и т.д.. или я не так понял... =) объясните новичку, как это сделать P.S. ФАСМ не предлагайте =) я про него знаю. меня просто интересует, как это делается с помощью MASM'а... может просто компоновщик другой надо?
Вообще-то MASM выдаёт на выходе объектные файлы, а не исполняемые. Исполняемые появляются на выходе компоновщика. Ну а то, что некоторые трансляторы умеют сразу рожать bin-файлы, является исключением, лишь подтверждающим правило. Тем более что написать действительно крупную и сложную вещь типа оси без разбиения на модули проблематично. Это модель для COM-файлов MS DOS. Хотя физический сегмент там один, перед собственно программой должен присутствовать так называемый префикс программного сегмента (PSP) длиной 256 байт -- его в процессе загрузки что COM, что EXE-файлов создаёт сама ДОС. Из-за этого код файлов с моделью TINY начинается со смещения 100h, а не с 0, как для "нормального" бинарника.
SII Да, но задается он вручную (org 100). Если не задать, будет с 0 транслироваться. TerraIncognita Возможно я плохо помню, но была утиль exe2bin или exetobin или в опциях линкера задавалось создание bin (sys? (org 0)) файла. Дальше он переименовывался в .сом ...