OSDev http://osdev.su/ |
|
как создать корректно lib файл masm ??? http://osdev.su/viewtopic.php?f=6&t=683 |
Страница 1 из 3 |
Автор: | DarkPerl [ 26 янв 2013, 13:24 ] |
Заголовок сообщения: | как создать корректно lib файл masm ??? |
Ребят, не знал где точно на форуме тему создать, так что пишу тут. У меня проблема над которой бьюсь уже N дней времени ... Не могу создать корректно lib файл используя пакет masm для работы в MS-DOS 6.22 Пробовал разные версии masm. Так же разные ключи для утилит ml.exe lib.exe и так далее. Может знает кто как правильно создать lib файл для реального режима адресации (16-bit) и как подключить его в главном модуле программы? Хочу чтобы в итоге было: main.asm - исходник главного модуля mylib.asm - исходник процедур которые подключаются из главного модуля директивой includelib На выходе хочу получить *.exe файл который запускается под MS-DOS Что я не делал пишет то invalid library, то на сегменты ругается, то ... короче HELP большими буковками! Покажите как правильно написать простейшую прогу HELLO WORLD! на примере двух модулей. Желательно с указанием на важные и ключевые моменты чтобы я нуб понял смысл =) Заранее спасибо! P.S. Книжки листал, ничего путного не нашел. Google так же. |
Автор: | SII [ 26 янв 2013, 13:55 ] |
Заголовок сообщения: | Re: как создать корректно lib файл masm ??? |
Подробностей не помню, ибо давно уже не пишу под ИА-32... Чтобы иметь возможность собрать программу из нескольких объектных модулей, в исходниках надо пользоваться директивами PUBLIC и EXTERN, описания их в документации точно есть, поэтому приводить не буду. Далее исходники транслируются МАСМом, в результате получаются объектные файлы. После этого все объектники скармливаются компоновщику (линкеру), и он уже делает из них EXE, DLL, COM или какой там он может (и попросите у него) файл. Пакет МАСМ уже давно не поддерживает создание 16-разрядных программ. Когда я последний раз его использовал (лет 5 назад, наверное), сам транслятор был способен транслировать 16-разрядные программы, но компоновщик связать их уже не мог, поэтому я пользовался сторонним компоновщиком -- UniLink'ом. Возможно, библиотеки создать не удаётся по той же причине: библиотекарь может "забыть", как работать с 16-разрядным кодом. |
Автор: | DarkPerl [ 26 янв 2013, 14:03 ] |
Заголовок сообщения: | Re: как создать корректно lib файл masm ??? |
Возможно вы правы, потому что для 32 - битных программ всё получается. А вот с 16 проблеммы ((( Интересно, как то же тот же Кип Ирвин транслировал свои программы в Irvine16.lib ))) Буду дальше ломать голову, очень хочется пописать под DOS ) А на счёт объектных файлов, это да, так можно. Сначала транслировать в obj несколько файлов, а потом в exe. Так то получается. Спасибо вам за ответ. |
Автор: | SII [ 26 янв 2013, 15:18 ] |
Заголовок сообщения: | Re: как создать корректно lib файл masm ??? |
Может, он пользовался более древней версией? |
Автор: | phantom-84 [ 26 янв 2013, 16:27 ] |
Заголовок сообщения: | Re: как создать корректно lib файл masm ??? |
Я под DOS, тем более на masm'е сто лет не писал. Но если следовать простой логике, то это должно выглядеть примерно так: Код: masm mylib.asm; lib mylib.lib +mylib.obj; masm main.asm; link main.obj; В исходниках, как сказал SII, естественно пользуемся директивами public/extrn. |
Автор: | DarkPerl [ 26 янв 2013, 17:27 ] |
Заголовок сообщения: | Re: как создать корректно lib файл masm ??? |
Я сейчас попробую...в смысле, попробую с extrn и public директивами. Но, вообще то, мне кажется, что по умолчанию все процедуры являются public если я пользуюсь упрощенными директивами .model small .code .data и .stack хотя я не уверен. Пойду пробовать |
Автор: | pavia [ 26 янв 2013, 17:40 ] |
Заголовок сообщения: | Re: как создать корректно lib файл masm ??? |
Иди читай документацию. |
Автор: | DarkPerl [ 26 янв 2013, 17:44 ] |
Заголовок сообщения: | Re: как создать корректно lib файл masm ??? |
pavia писал(а): Иди читай документацию. Какой раздел и какой именно документации? |
Автор: | DarkPerl [ 28 янв 2013, 14:38 ] |
Заголовок сообщения: | Re: как создать корректно lib файл masm ??? |
Вопрос открыт, пока положительных результатов нет ( Как получить 16 разрядную lib у ??? (какими средствами, ключами, директивами и тд и тп) |
Автор: | Himik [ 28 янв 2013, 17:00 ] |
Заголовок сообщения: | Re: как создать корректно lib файл masm ??? |
Возьми версию 6.11 отсюда http://old-dos.ru/files/file_122.html В этом пакете есть все нужные утилиты, включая LIB.EXE Поверх него можншь поставить обновление Update 6.11-6.11d Она работает под DOS. Файл Update 6.11-6.14 это обновление до версии 6.14, он компилирует программы для DOS и Windows, но сам работает только под Windows. Я лично работал только с TASM, про MASM ничего сказать не могу. |
Страница 1 из 3 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |