Вопрос № 122033: Здравствуйте! Скачал рассылку Калашникова, раньше программирование не занимался. Вопрос возник сразу на первой программе. НЕ создаётся файл prog01.com или prog01.exe. Файл prog01.obj создаётся и всё. Это ведь не обязательно делать под досом? У меня W...
Вопрос № 122.033
Здравствуйте! Скачал рассылку Калашникова, раньше программирование не занимался. Вопрос возник сразу на первой программе. НЕ создаётся файл prog01.com или prog01.exe. Файл prog01.obj создаётся и всё. Это ведь не обязательно делать под досом? У меня Windows XP SP2, MASM 6.11. Из под Far'a пробовал с командной строки (комманда ML.EXE prog01.asm /AT), из под WinCom'a тоже, хотя я думаю это роли не играет=)?Подскажите, плз. Заранее спасибо.
Отправлен: 07.02.2008, 02:41
Вопрос задал: Knucky (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Zetasm
Здравствуйте, Knucky!
Многие уроки по Ассемблеру (например, "Рассылка Калашникова") основаны на DOS-примерах в формате com.
Из состава "MASM32 v9" подходит только ml.exe. А вот линковщик придётся брать дополнительный.
Использовать его можно примерно с такой командной строкой:
LINK /TINY имя.obj,имя.com;
; - обрывает строку
ключ /TINY - определяет мини-модели, то есть обычный формат com-файла для DOS.
Для облегчения компиляции com-программ можно сделать следующее:
Переименовать Segmented Executable Linker LINK.EXE в LINKDOS.EXE
Поместить его в папку MASM32BIN
Создать в той же папке файл BCOM.BAT с таким содержанием:
echo off
if exist "%1.obj" del "%1.obj"
if exist "%1.exe" del "%1.exe"
masm32inml /c /AT "%1.asm"
if errorlevel 1 goto errasm
masm32inLINKDOS /TINY "%1.obj","%1.com";
if errorlevel 1 goto errlink
dir "%1.*"
goto TheEnd
:errlink
echo _
echo Link error
goto TheEnd
:errasm
echo _
echo Assembly Error
goto TheEnd
:TheEnd
pause
Линк по теме: http://bitfry.narod.ru/17.htm
Ответ отправил: Zetasm (статус: 1-ый класс)
Ответ отправлен: 07.02.2008, 03:19