| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm для Windows/Dos > Ошибка при компилляции! |
| Автор: wrvu 23.12.2009, 16:29 | ||
Подскажите как правильно задать компиллятору команду для данного кода:
Я прописываю так: ml /c /coff namefile.asm Ошибка: Assembling: namefile.asm namefile.asm(11) : warning A4023: with /coff switch, leading underscore required for start address : start ------------ Какой в этоге вообще должен получиться файл .com .exe? Подскажите правильные команды! мой вариант: ml /c /coff namefile.asm link /subsystem:windows namefile.obj |
| Автор: 500mhz 23.12.2009, 18:24 |
| в теории ЕХЕ должен получиться, для СОМ нужно указать org 0x100 пс а чем обусловлен выбор компилятора? не проще ли в фасме скомпилить нажав F9 ? |
| Автор: wrvu 23.12.2009, 19:33 |
| 500mhz благодарен за ответ. Не в простоте дело, использую компиллятр MASM - компиляция также происходить от одного нажатия клавиши. Но не в нажимании дело, я хочу изучить прерывания, поискал в интернете информацию не нашел. Если кто владеет такой информацией о прерываниях, и как правильно задавать команды компиллятору, поделитесь пожалуйста. |
| Автор: wrvu 23.12.2009, 23:09 | ||||
| airyashov Благодарю за ответ, вот только бы еще правильную команду для link. Иду пробовать твой вариант!! ----------------------------------------------- Попробовал, вариант на верном пути, только все равно ошибка.
Не пойму в чем дело! --------------------- Помогите! не могу скомпиллировать, что бы получился рабочий файл .exe
|
| Автор: airyashov 24.12.2009, 00:10 |
| незнаю что за масм у Вас 6,11 результат нормальный exe L:\asm\MASM611\BIN>ml 2.asm Microsoft ® Macro Assembler Version 6.11 Copyright © Microsoft Corp 1981-1993. All rights reserved. Assembling: 2.asm Microsoft ® Segmented Executable Linker Version 5.31.009 Jul 13 1992 Copyright © Microsoft Corp 1984-1992. All rights reserved. Object Modules [.obj]: 2.obj Run File [2.exe]: "2.exe" List File [nul.map]: NUL Libraries [.lib]: Definitions File [nul.def]: L:\asm\MASM611\BIN> |
| Автор: wrvu 24.12.2009, 01:10 |
| airyashov Благодарю за ответ. Помоги мне и на дальше разобраться, у маня Масм вот какой, сообщение после компиляции с ошибкой: Microsoft ® Macro Assembler Version 6.15.8803 Copyright © Microsoft Corp 1981-2000. All rights reserved Assembling: musor2.asm Microsoft ® Incremental Linker Version 5.12.8078 Copyright © Microsoft Corp 1992-1998. All rights reserved. /z2 "musor2.obj" "musor2.exe" NUL LINK : warning LNK4044: unrecognized option "z2"; ignored musor2.obj : warning LNK4033: converting object format from OMF to COFF musor2.obj : warning LNK4078: multiple ".data" sections found with different attributes (C0220040) LINK : fatal error LNK1181: cannot open input file "musor2.exe" В чем же ошибка? airyashov А возможно, прикрипить твой Масм для пробы? Может в версиях разница... |
| Автор: wrvu 24.12.2009, 01:28 |
| Спасибо за помощь, разобрался с ошибкой, проблемма была в версии LINK.EXE. Получился файл .exe я так понимаю 16-битная программа? Каким отладчиком ее можно просмотреть? |
| Автор: Mikl_ 24.12.2009, 04:10 |
| wrvu, Вот http://forum.vingrad.ru/forum/topic-238910.html# я прикреплял afdpro -- для 16-разрядных программ достаточно хороший отладчик, еще для этих целей есть insight, td |
| Автор: wrvu 24.12.2009, 10:36 | ||
Спасибо Mikl_, подскажи, вот к примеру такой код
может быть .exe 32 бит? Хочу углубиться в изучение портов (USB), как вообще они работают, если имееться такая информация, с радостью почитаю. |
| Автор: Mikl_ 24.12.2009, 11:16 | ||
| wrvu, 32-разрядные инструкции в 16-разрядных программах (COM, EXE для DOS, OVR, DRV) делаются путем указания перед инструкции .586 например
либо если старый компилятор и не знает новых команд пишешь в кодах например для cpuid -- db 0Fh, 0A2h |
| Автор: wrvu 24.12.2009, 17:42 |
| Mikl_ Благодарю заответ! Я так понял,что мне нужно идти читать книжки Подскажите, если писать программу, которая бы работала с USB портом, нужно использовать прерывания? |
| Автор: Mikl_ 25.12.2009, 04:02 |
| wrvu, Если писать программы для Windows, то там нет прерываний в привычном для DOS понимании, там всё делается через WinAPI-функции |
| Автор: wrvu 26.12.2009, 16:59 |
| Я так понял, что с помощью IP-функций также можно использовать порт USB? |