Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 5.00/22: Рейтинг темы: голосов - 22, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 21
1

Как создать корректную статическую (lib) библиотеку под MS-DOS (16 bit) из Windos (32-64 bit) или из MS-DOS?

28.01.2013, 19:17. Просмотров 4600. Ответов 29
Метки нет (Все метки)

Привет всем!
Кто подскажет, как корректно создавать статические библиотеки для 16-битного режима адресации процессора?
Другими словами, как создать lib файл который можно потом подключить директивой includelib из основного файла (main.asm например) и на выходе получить исполняемый файл типа exe ?
Я использую пакет masm версии 6.14.8444 (ml.exe)
Версия библиотекаря (lib.exe) 5.12.8078
Версия компоновщика (link16.exe) 5.60.339 Dec 5 1994
Вообщем, пишу я исходник с именем mylib.asm
Затем я его транслирую в mylib.obj
Ну и делаю либу lib.exe mylib.obj на выходе получаю mylib.lib
Но, при попытке скомпоновать линкером link16.exe получаю сообщение, что моя библиотека не корректная.
invalid library

Что делать, куда рыть?

Если кто знает напишите пожалуйста на примере:
два исходника: main.asm и mylib.asm
main.asm главная программа которая при компиляции подключает директивой includelib mylib.lib в котором скажем простенькая процедурка выводящая на экран строку hello, world
Интересует именно подробный пример: чем компилировать (версии), ключи командной строки, директивы в исходниках.
Заранее спасибо всем!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.01.2013, 19:17
Ответы с готовыми решениями:

Как установить qbasic под windos 7 64-bit
Здравствуйте! Я хотел бы установить qbasic на свой ПК не могу найти нормальный qbasic прошелся по...

16 bit MS-DOS Subsystem
При запуске любых программ появляется консоль и окошко. Например Steam: сверху написано 16 bit...

16 bit MS-DOS Subsystem
"16 bit MS-DOS Subsystem" The NTVDM CPU has encountered an illegal instruction. Как решить...

16 bit ms-dos subsystem
Здраствуйте! У меня вот такая проблема выскакивает окно/ ОС Windows 7 16 bit ms-dos subsystem ...

29
64 / 64 / 0
Регистрация: 06.10.2011
Сообщений: 300
28.01.2013, 19:32 2
в досе не было библиотек, были прервания и драйевра. соммандком несколько сотен кбайт весит. создай резидента или сам обратись к файлу нужному.
или прерывание свое сделай, или сам выдели блок памяти. загрузи туда нужныую часть из другого файла, сам талицу импортапридумай как тебе удобнее. да и все. только так не делают
0
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 21
28.01.2013, 19:41  [ТС] 3
Хм, как же тогда Кип Ирвин в своём учебнике подключает irvine16.lib в которой нужный функционал?
Он же как то и чем то эту либу собрал???
0
64 / 64 / 0
Регистрация: 06.10.2011
Сообщений: 300
28.01.2013, 21:40 4
да я попутал либу и дллку. специально вытащил масм6.15 там и либы и инклуды уже есть. только не такие как в винде само собой.
0
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 21
28.01.2013, 21:51  [ТС] 5
Да lib другие, но как их получить самому, вот в чём вопрос.
Точнее, lib я вроде как получаю из obj но потом эта либа не клеится к main.obj ((((
Пишет No Valid Library

Добавлено через 1 минуту
Я уже разные версии masm пробовал и ключи разные, но что то не то всё. Должен быть способ конкретно получить 16 разрядную lib у
0
64 / 64 / 0
Регистрация: 06.10.2011
Сообщений: 300
28.01.2013, 21:54 6
вот тебе даже оригинальный масм6.15, либ.екзе возьми от него для 16 битного кода. параметры командной строки lib.exe /?. разберешься тут напиши пригодится. гугл тебе в помощь.
Microsoft Macro Assembler v6.15.iso
1
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 21
28.01.2013, 21:56  [ТС] 7
Я пороюсь и если, что накопаю выложу решение конечно же тут. Но пока что успехов нет, сплошные ошибки. )
0
64 / 64 / 0
Регистрация: 06.10.2011
Сообщений: 300
28.01.2013, 22:02 8
то что в масме лежит LIB.EXE это для винды This program cannot be run in DOS mode.

сразу поймешь разницу

Код
ECHO OFF
COLOR 9F
CLS
REM C:\MASM611\BIN\ML.EXE NONAME.asm /link C:\MASM611\LIB\MYLIB.LIB
C:\MASM611\BIN\ML.EXE NONAME.asm /AT
pause
C:\MASM611\BINR\LINK.EXE NONAME.obj /t
pause
батник у меня такой валяется в 6.11 масме
0
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 21
28.01.2013, 22:04  [ТС] 9
Получается нужно делать lib из под windows? А линковать из под DOS ?))
0
Клюг
7666 / 3181 / 382
Регистрация: 03.05.2011
Сообщений: 8,381
28.01.2013, 22:20 10
Вообще-то есть исходники ф-ций сюшного рантайма (clib) и msvcrt.dll на асме, но их надо допиливать и проверять, а мне лень.
0
Вложения
Тип файла: zip freeli30.zip (203.3 Кб, 32 просмотров)
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 21
28.01.2013, 22:25  [ТС] 11
Цитата Сообщение от Charles Kludge Посмотреть сообщение
Вообще-то есть исходники ф-ций сюшного рантайма (clib) и msvcrt.dll на асме, но их надо допиливать и проверять, а мне лень.
Эм, а немножко подробнее, пожалуйста, можно? А то я малёк Нуб в этом. ))) Что имеется ввиду, что можно под себя софт создать?
0
Клюг
7666 / 3181 / 382
Регистрация: 03.05.2011
Сообщений: 8,381
28.01.2013, 22:46 12
Можно будет создать стат. биб-ку под досю, по функционалу не уступающую msvcrt.dll и писать под дос с гораздо большим комфортом.
0
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 21
28.01.2013, 22:52  [ТС] 13
Нужно будет попробовать. А использовать её нужно в win32-64 или из под dos ?
0
Клюг
7666 / 3181 / 382
Регистрация: 03.05.2011
Сообщений: 8,381
28.01.2013, 23:00 14
Под дос и дос/32(DPMI), но к этому надобно приложить руки и голову.
0
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 21
28.01.2013, 23:02  [ТС] 15
Сначала выучить ассемблер и Си, а потом переписать утилиту ))))
Ы
0
64 / 64 / 0
Регистрация: 06.10.2011
Сообщений: 300
28.01.2013, 23:09 16
ты можешь все сделать под виндой, но link и lib надо брать 16 битные, а мл.екзе универсальный
0
Клюг
7666 / 3181 / 382
Регистрация: 03.05.2011
Сообщений: 8,381
28.01.2013, 23:10 17
DPerl, утилита-библиотекарь для доса в аттаче.
0
Вложения
Тип файла: zip wlib.zip (100.3 Кб, 15 просмотров)
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 21
28.01.2013, 23:16  [ТС] 18
Под виндой то могу, но хочется под дос примеры порешать, чтобы лучше понять архитектуру IA

Добавлено через 35 секунд
Цитата Сообщение от Charles Kludge Посмотреть сообщение
DPerl, утилита-библиотекарь для доса в аттаче.
Сейчас буду пробовать..

Добавлено через 3 минуты
теперь dos4gw.exe просит ))))))))
Елки, пока эту 16 битную либу получишь можно гуру командной строки стать) ггг
0
Клюг
7666 / 3181 / 382
Регистрация: 03.05.2011
Сообщений: 8,381
28.01.2013, 23:20 19
Цитата Сообщение от DPerl Посмотреть сообщение
теперь dos4gw.exe просит
ВотЪ.
1
Вложения
Тип файла: zip dos4gw.zip (140.3 Кб, 17 просмотров)
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 21
28.01.2013, 23:23  [ТС] 20
wlib.exe терь запустился, сяп)
Сейчас буду пробовать либу делать. *скрестил пальцы на удачу* =)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.01.2013, 23:23

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

16 bit MS-Dos subsystem
Здравствуйте, прошу помочь. Появилась проблема, откуда не знаю....

Ошибка 16 bit MS-DOS Subsystem
При включении системы выходят 2 ошибки. Прошу помощи их убрать?

Eclipse C++ toolchain for 16-bit DOS
Добрый день! Необходимо написать программу для контроллера под 16-битный DOS. Хотелось бы делать...

16 bit ms-dos subsystem QTWWFV
gecata Привет,такая проблема окно появляется при запуске ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.