Возник следующий вопрос. Чем компилировать вышеупомянутые программы? Какой компилятор/компоновщик использовать лучше всего? Пытался использовать masm v 6.13, но не смог ничем правильно слинковать, т.к. 'object file is corrupt'. Заранее спасибо!
Я пользовался masm v6.14, если быть точным. Компилирую "ML /c /coff /Fl". Если убрать ключ /c, то получаю "fatal error LNK1221: a subsystem can't be inferred and must be defined". Тут же возникает вопрос - а какую подсистему должен я указывать?
Подсистема нужна, если ты пишешь приложение под windows. Переключение в ПМ всё-таки обычно выполняют из реального режима, так что приложение должно быть досовское. Там другой формат exe-файла и никаких подсистем просто нет. Мой старенький masm из под винды вообще не запускался, поэтому у него таких проблем не было Но по идее у нового должен быть какой-нибудь волшебный ключик на эту тему. Но если ты всё таки исхитрился написать что-то с ПМ под винду - ну выбери себе подсистему, проблем-то..
Недавно прочитал пару статей про PM и всё что с ним связано. Автор (типа крутой забугорный программер) пользовался masm v6.1 для написания программ для перехода в PM. Однако в статье он пишет что этот компилятор не умеет осуществлять переход в 32-битный сегмент из 16-тибитного и автор пользуется для этого макросами. Я пытался, правда очень давно, писать подобные проги с помощью masm v6.14 но получил тот же результат, что и the_player. В официальной документации не нашел ни словечка на эту тему. Могу посоветовать NASM. Он отлично подходит для написания досовских и двоичных файлов. Так что даже если возникнет необходимость написать загрузчик то NASM подойдет на все 100% (только будьте осторожны с ORG