Вопрос № 62500: Привет! У меня вопрос. Сидел я в tasm-e и тут решил пересесть на masm. Но сталкнулся с тем, что при переходе от версии к версии masm-а наполнение каталога bin меняется (в отличие от tasm-а в котором всегда tasm, tlink and td). Вопрос в том, что если ...Вопрос № 62511: Здравствуйте, я уже вам писал по поводу характеристик дискового накопителя.Я нашел как это делать.
Но вот вопрос.
Как написать резидентную программу, которая загружается и при нажатии CTRL-S выводит например текст:"вы нажали CTRL+S"...
Вопрос № 62.500
Привет! У меня вопрос. Сидел я в tasm-e и тут решил пересесть на masm. Но сталкнулся с тем, что при переходе от версии к версии masm-а наполнение каталога bin меняется (в отличие от tasm-а в котором всегда tasm, tlink and td). Вопрос в том, что если можно полностью компилировать asm->exe с помощью ml, зачем тогда masm и link?
Отправлен: 13.11.2006, 21:39
Вопрос задал: Oxaid (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Eugene L
Здравствуйте, Oxaid!
masm.exe действительно не нужен: это пережиток DOSовских-версий транслятора.
а вот без link.exe не обойтись - экзешник ml.exe сам по себе не линкует
объектные модули - он вызывает этот самый link.exe по умолчанию.
ml.exe можно заставить генерировать только объектные модули (ключ /c)
и собирать их вручную в исполняемый файл с помощью link.exe
Например:
ml /c /coff "msgbox.asm"
link /SUBSYSTEM:WINDOWS "msgbox.obj"
Это более гибкий вариант. Зотя можно записать и так:
ml.exe /coff msgbox.asm /link /SUBSYSTEM:WINDOWS
Кому как больше нравится. Я лично предпочитаю 1й вариант.
Ответ отправил: Eugene L (статус: 1-ый класс)
Ответ отправлен: 13.11.2006, 23:09 Оценка за ответ: 5
Отвечает: IceWolf
Здравствуйте, Oxaid!
В современной версии MASM32 для ассемблирования используется ML.EXE, а файла MASM.EXE там и вовсе нет, он был в старых версиях. LINK.EXE-компоновщик, ML.EXE сам запускает его после создания объектного модуля,( если не указан клюс /c, тогда надо линковать вручную-нужно, например, чтобы слинковать несколько модулей) поэтому он обязательно нужен. В принципе их достаточно(не считая .lib'ы) для создания исполнимого файла. Также в MASM32 есть компилятор ресурсов RC.EXE , ещё много полезных утилит и подробная документация
как всем этим пользоваться.
Кроме MASM'а есть ещё интенсивно развивающийся, перспективный проект FASM
flatassembler.net Там ассемблирование и линковка осуществляются одной программой fasm.exe, а параметры задаются в иходнике.
Переходить с тасма определённо надо, так как Боланд его больше не поддерживает. А вот на что переходить-решать вам.
С уважением IceW0|f.
--------- И да покарает пингвин мелких и мягких!
Ответ отправил: IceWolf (статус: 2-ой класс)
Ответ отправлен: 13.11.2006, 23:26 Оценка за ответ: 5
Вопрос № 62.511
Здравствуйте, я уже вам писал по поводу характеристик дискового накопителя.Я нашел как это делать.
Но вот вопрос.
Как написать резидентную программу, которая загружается и при нажатии CTRL-S выводит например текст:"вы нажали CTRL+S", а при нажатии CTRL-X выгружается из памяти.Пробовал через прерывание(аппаратное) int 09h - не работает.Пробовал через ф-ю 00H прерывания int 16h-тоже самое.Вот мои проги.Кто может что-нибудь подсказать.
Приложение:
Отправлен: 13.11.2006, 23:07
Вопрос задал: JONNY (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: IceWolf
Здравствуйте, JONNY!
Скорее всего Вы запускали свои программы под Windows, поэтому и не работает. Такие программы надо запускать хотя бы из-под FAR'а, хотя и там с резидентами бывают глюки. Наилучший вариант-установить на Ваш компьютер MS-DOS или виртуальную машину, а под ней MS-DOS.
С уважением IceW0|f.
--------- И да покарает пингвин мелких и мягких!
Ответ отправил: IceWolf (статус: 2-ой класс)
Ответ отправлен: 15.11.2006, 02:21