Як спростити компіляцію програм на асемблері.


Як відомо, компілятори асемблера працюють в командному рядку, і, найчастіше, не мають свого текстового редактора. А якщо і мають - то без синтаксичної підсвічування. Так що для набору програми можна користуватися редактором на зразок Bred, а як без проблем компілювати - я покажу

Інструкція Рівень складності: Нескладно 1 крок

Визначимося з папками. Припустимо, компілятор MASM у папці C: \ masm32 \ bin, а код програми - файл С: \ masm32 \ projects \ proba \ proba.asm
Створюємо в папці з кодом програми текстовий файл і перейменовуємо в "compile.bat".

2 крок

Відкриваємо і вводимо (або копіюємо звідси):

cd .. \ .. \ bin \
echo -------- ASSEMBLING --------
ml/c/coff ".. \ projects \ proba \ proba.asm"/Fo "proba.obj"
echo -------- LINKING ---- ----
link/ SUBSYSTEM : WINDOWS / OUT : "proba.exe" "proba.obj"
echo -------- MOVING --------
move/Y proba.obj .. \ projects \ proba \
move/Y proba.exe .. \ projects \ proba \
pause
cd .. \ projects \ proba \
proba.exe
pause

Тепер розглянемо, що ж робить даний файл при запуску

3 крок

> cd .. \ .. \ bin \
Переходимо з папки з кодом програми (С: \ masm32 \ projects \ proba \) в теку з компілятором (C: \ masm32 \ bin)

4 крок

> echo -------- ASSEMBLING --------
> ml/c/coff ".. \ projects \ proba \ proba.asm "/Fo" proba.obj "
В консоль виводиться повідомлення, що йде компіляція, після чого запускається компіляція файлу з кодом програми. Результат - об'єктний файл C: \ masm32 \ bin \ proba.obj

5 крок

> echo -------- LINKING --------
> link/ SUBSYSTEM : WINDOWS / OUT : "proba.exe" "proba.obj"
В консоль виводиться повідомлення про лінковке, після чого запускається лінковщік.


Результат - програмний файл C: \ masm32 \ bin \ proba.exe

6 крок

> echo -------- MOVING --------
> move/Y proba.obj .. \ projects \ proba \
> move/Y proba.exe .. \ projects \ proba \
В консоль виводиться повідомлення про переміщення файлів, файли proba.obj і proba.exe переміщуються в папку з кодом програми

7 крок

> pause
> cd .. \ projects \ proba \
> proba.exe
> pause
Чекаємо натискання клавіші (щоб користувач міг переглянути результати компіляції), після цього переходимо назад у вихідну папку і запускаємо програму. Остання пауза - щоб консольне вікно не закрилося, поки користувач не натисне будь-яку кнопку ще раз (її можна прибрати).

8 крок

<ШАБЛОН>
Якщо ви зберігати в папці projects багато проектів, то можна зробити шаблон файлу "compile.bat", і потім для кожного нового проекту лише робити дві заміни (блокнотом, або Bred'ом, або будь-який інший програмою). Для проекту projects \ newproject \ main.asm потрібні дві заміни: "{folder}" ? "newproject", "{file}" ? "main".
Текст шаблону:
cd .. \ .. \ bin \
echo -------- ASSEMBLING --------
ml/c/coff ".. \ projects \ {folder} \ {file}. asm "/Fo" {file}. obj "
echo -------- LINKING --- -----
link/ SUBSYSTEM : WINDOWS / OUT : "{file}. exe" "{file}. obj"
echo -------- MOVING ------- -
move/Y {file}. obj .. \ projects \ {folder} \
move/Y {file}. exe .. \ projects \ {folder} \
pause
cd .. \ projects \ {folder} \
{file}. exe
pause