Народ, я ещё новичок. Изучаю асм по статьям Serrqio. В одной из них он приводит листинг следующего содержания: ;-[блок 2]-------------------------- CODESG segment assume CS:CODESG org 100 ;-[блок 3]-------------------------- MAIN proc xor AL,AL mov BH,10h mov CH,5 mov CL,10h mov DH,10h mov DL,3Eh mov AH,6 int 10h call WINDOW call WINDOW call WINDOW call WINDOW int 20h MAIN endp WINDOW proc ADD BH,10h ADD CH,1 ADD CL,1 SUB DH,1 SUB DL,1 INT 10h RET WINDOW endp ;-[блок 4]-------------------------- CODESG ends end MAIN Я набрал его в МАСМ32 , он сомпилится, но выдаёт предупреждение: warning A4023: with /coff switch, leading underscore required for start address : MAIN И потом не линкуется. Не знаю по неопытности, что это за предупреждение, и что не так. Помогите, кто знает.
это дос приложение. убери ключ /coff, a линковать все равно придется со старым линкером. может, эта ссылка еще живая: http://win32assembly.online.fr/files/Lnk563.exe - это дос саморапаковывающийся (без предупреждений в текущи каталог!) архив
Geddricko Когда masm'ом компилишь в coff, имя стартового адреса должно начинаться с подчеркивания. Вообще есть 3 варианта решения: 1. как уже говорил, добавить подчеркивание к имени точки входа 2. в начало файла можно написать ".model tiny, stdcall" (если .com, как у тебя) 3. компилить в omf, а не в coff, т.е. при ассемблировании убрать у ml опцию "/coff" з.ы. а вообще, если пишешь 16-битные проги под дос, рекомендую использовать tasm вместо masm'а - геморроя меньше. (Хотя я бы использовал nasm).
А как убирается эта опция в Масм32 v10 ? Я там вообще ни настоек ни строк для ввода\редактирования ключей не нашёл.
Теперь новая проблема. Всё нармально компилится и линцуется, но при запуске из-под Far-а вылетает и не работает. Я эту же штуку в dZebuge до этого делал - там всё работает. Не нахожу я пока общий язык с компилятором. Что с новой проблемой делать? И кроме того - получается всё равно .exe - файл.
Загружаю этот код в tasm 2.0 с ключом /t , а он мне в ответ выплёвывает дословно следующее: Error: cannot generate COM file: invalid initial entry point address И что с этим делать? Подскажите кто-нибудь! Что нужно чтобы COM файл получился?
Ну наконец-то! Теперь всё заработало! Спасибо Meduza! Но подытоживая, что всё-таки надо для того, чтобы сом-файл получился?