Как упростить компиляцию программ на ассемблере
Как известно, компиляторы ассемблера работают в командной строке, и, чаще всего, не имеют своего текстового редактора. А если и имеют то без синтаксической подсветки. Так что для набора программы можно пользоваться редактором вроде Bred, а как без проблем компилировать я покажу
Инструкция
1 шаг
Определимся с папками. Предположим, компилятор MASM в папке C:masm32in, а код программы файл С:masm32projectsprobaproba.asm
Создаем в папке с кодом программы текстовый файл и переименовываем в compile.bat .
2 шаг
Открываем и вводим (или копируем отсюда):
cd ....in
echo - #8212; #8212; #8212; #8212; #8212; #8212;- ASSEMBLING - #8212; #8212; #8212; #8212; #8212; #8212;-
ml /c /coff ..projectsprobaproba.asm /Fo proba.obj
echo - #8212; #8212; #8212; #8212; #8212; #8212;- LINKING - #8212; #8212; #8212; #8212; #8212; #8212;-
link /SUBSYSTEM:WINDOWS /OUT: proba.exe proba.obj
echo - #8212; #8212; #8212; #8212; #8212; #8212;- MOVING - #8212; #8212; #8212; #8212; #8212; #8212;-
move /Y proba.obj ..projectsproba
move /Y proba.exe ..projectsproba
pause
cd ..projectsproba
proba.exe
pause
Теперь рассмотрим, что же делает данный файл при запуске
3 шаг
> cd ....in
Переходим из папки с кодом программы (С:masm32projectsproba) в папку с компилятором (C:masm32in)
4 шаг
> echo - #8212; #8212; #8212; #8212; #8212; #8212;- ASSEMBLING - #8212; #8212; #8212; #8212; #8212; #8212;-
> ml /c /coff ..projectsprobaproba.asm /Fo proba.obj
В консоль выводится сообщение, что идет компиляция, после чего запускается компиляция файла с кодом программы. Результат объектный файл C:masm32inproba.obj
5 шаг
> echo - #8212; #8212; #8212; #8212; #8212; #8212;- LINKING - #8212; #8212; #8212; #8212; #8212; #8212;-
> link /SUBSYSTEM:WINDOWS /OUT: proba.exe proba.obj
В консоль выводится сообщение о линковке, после чего запускается линковщик. Результат программный файл C:masm32inproba.exe
6 шаг
> echo - #8212; #8212; #8212; #8212; #8212; #8212;- MOVING - #8212; #8212; #8212; #8212; #8212; #8212;-
> move /Y proba.obj ..projectsproba
> move /Y proba.exe ..projectsproba
В консоль выводится сообщение о перемещении файлов, файлы proba.obj и proba.exe перемещаются в папку с кодом программы
7 шаг
> pause
> cd ..projectsproba
> proba.exe
> pause
Ждем нажатия клавиши (чтобы пользователь мог просмотреть результаты компиляции), после этого переходим обратно в исходную папку и запускаем программу. Последняя пауза чтобы консольное окно не закрылось, пока пользователь не нажмет любую кнопку ещё раз (её можно убрать).
8 шаг
< ШАБЛОН >
Если вы хранить в папке projects много проектов, то можно сделать шаблон файла compile.bat , и потом для каждого нового проекта лишь делать две замены (блокнотом, или Bred #8217;ом, или любой другой программой). Для проекта projects
ewprojectmain.asm нужны две замены: {folder} #8594; newproject , {file} #8594; main .
Текст шаблона:
cd ....in
echo - #8212; #8212; #8212; #8212; #8212; #8212;- ASSEMBLING - #8212; #8212; #8212; #8212; #8212; #8212;-
ml /c /coff ..projects{folder}{file}.asm /Fo {file}.obj
echo - #8212; #8212; #8212; #8212; #8212; #8212;- LINKING - #8212; #8212; #8212; #8212; #8212; #8212;-
link /SUBSYSTEM:WINDOWS /OUT: {file}.exe {file}.obj
echo - #8212; #8212; #8212; #8212; #8212; #8212;- MOVING - #8212; #8212; #8212; #8212; #8212; #8212;-
move /Y {file}.obj ..projects{folder}
move /Y {file}.exe ..projects{folder}
pause
cd ..projects{folder}
{file}.exe
pause
Как упростить компиляцию программ на ассемблере