Наверное самый тупой вопрос.... Как мне в MASM32 скомпиллировать программу? Я создаю файл *.asm, например на С:\\eee.asm, открываю его через qeditor.exe, далее console build all, ругается, создает там файл *.obj.....и как же создать com или exe файл? Ошибка: fatal error LNK1190: invalid fixup found, type 0x0001 (Link error) Заранее спасибо...
Посл. версия компилятора MASM всё ещё умеет генерировать 16-битные obj. Что в asm файле и какие опции ml ?
lexer Найти в сети Питера Абеля не проблема, а с сайта (текущего) и Зубкова, там есть то что тебе надо! Плюс, зайди в сорцы, там есть много под дос, глянь команды. Может че начудил!
fasm есть...попробую,отпишусь А код программы такой..... CSEG segment org 100h Start: mov ah,9 mov dx,offset String int 21h mov ah,10h int 16h int 20h String db 'Ждем нажатия клавиши...$' CSEG ends end Start
То что org 100h то это надо! т.к. префикс программного сегмента для досовских бинарных (обычно расширение *com) никто не отменял! Все сегментные регистры на один сегмент! ибо в сегменте и стек и данные и код!
green Бодяжь фасмом и не мучайся! Врядли ты щас меньше чем 386 комп найдешь, так что фасм пойдет! Да и цель ДОС изучать? Лучше знать асм? Да ну брось ты, он вымер, щас осталось очень мало, хоть они есть ЭВМ которые работают с этой ОСью. Думаю тебе не ДОС надо колупать а Винду или НИксы больше пользы от потраченного времени
lexer Как скажешь командами, так и будет! Хошь *.dll, хошь *.exe (PE,MZ) а хошь вообще *.com Ведь фасм позволяет ассеблить код, не делая какой либо формат!!! А что такое *.com ? Правильно, напесал кода, сегментные регистры приравнял, org 100h добавил, а с ассеблированную штуку в *.com переименовал, все у тебя бинарник есть!
EvilsInterrupt А по-моему минимальный сом из одного байта состоит - ret(n или f, не помню). DOS кладет в стек адрес int 20h перед запуском.
lexer Текст у тебя под ДОС - поэтому нужен старый масм. http://www.rusfaq.ru/?Step=info&Action=Question&ID=18207