Робоче середовище для роботи з асемблером

1. Організація папок

Найпростіші асемблерні програми розміщують і компілюють прямо у папці з компілятором. При цьому кількість файлів швидко зростає і орієнтуватися в них стає все важче.

У деяких користувачів з'являється, навіть, по кілька таких папок. Для серйозної роботи цей підхід взагалі неприйнятний. Файли компілятора повинні бути на своєму постійному місці, а файли програм — у папках відповідних проектів. Під час компіляції потрібно правильно вказати шляхи до папок. Зазвичай ці функції виконує інтегроване середовище розробки (IDE).

Ми розглянемо приклад організації середовища для компіляції програм з командного рядка (вручну). За основу візьмемо компілятор TASM. Практика наступна. Файли компілятора найкраще розмістити в папці C:\TASM або D:\TASM, хоча можна і в іншому місці. Прослідкуйте, аби шлях до папки був представлений англійськими літерами і не містив символів пропуску.

Всередині папки TASM створюють наступні підпапки: BIN, HELP, INCLUDE, LIB. У цих папках розміщуються всі необхідні для роботи компілятора та компонувальника файли. Папка BIN містить двійкові файли – компілятор TASM.EXE, компонувальник TLINK.EXE, файли DPMILOAD.EXE, DPMIMEM.DLL, та ін. Папка ICLUDE містить заголовкові файли, а папка LIB – бібліотечні файли. У папці HELP розміщують файли довідкової системи.

Файли з текстами програм розміщують в робочому каталозі (наприклад, C:\TASM\Progs, D:\Projects\AsmProgs) або в папках окремих проектів.

2. Компіляція програм

Компіляція проводиться безпосередньо в робочому каталозі. Компілятор запускається з командного рядка консолі CMD.EXE. Консоль за умовчанням використовує робочу папку C:\WINDOWS\system32. Це незручно, оскільки нам доведеться кожного разу задавати повний шлях до папки з програмою, або переходити в робочий каталог за допомогою команд консолі. Набагато зручніше в робочій папці створити ярлик для запуску командного рядка і дати йому назву PROMPT або CMD.EXE. У властивостях ярлика в рядку "Объект" повинно бути cmd.exe або %windir%\system32\cmd.exe. Рядок "Рабочая папка" властивостей ярлика краще залишити порожнім, тоді консоль можна запустити з будь-якої робочої папки проекту. Можна також для зручності вибрати для ярлика іншу іконку.

Якщо ми спробуємо компілювати програму hello.asm звичною командою tasm hello, то одержимо помилку, оскільки система не знає, де зараз знаходиться компілятор tasm.exe, треба її про це повідомити. Допоможе команда типу C:\TASM\BIN\tasm hello, хоча при цьому доводиться набирати повний шлях до файлу компілятора, а це незручно. Тому краще спочатку подати команду PATH=C:\TASM\BIN, яка повідомить систему про шлях до компілятора, а потім використовувати звичні команди tasm hello та tlink hello.

3. Командні файли

Нарешті, автоматизувати компіляцію асемблерних програм можна за допомогою командних файлів. Командний файл – це текстовий файл із розширенням CMD або BAT, в якому записана послідовність консольних команд. Запущений на виконання командний файл послідовно виконує записані в ньому команди.

У папці з програмою створимо командний файл asm.cmd із наступним вмістом

@echo off

PATH=C:\TASM\BIN

if exist "%1.obj" del "%1.obj"
if exist "%1.exe" del "%1.exe"

tasm %1.asm
if errorlevel 1 goto errasm

tlink %1.obj
if errorlevel 1 goto errlink

dir "%1.*"
goto TheEnd

:errlink
echo Link error
goto TheEnd

:errasm
echo Assembly Error
goto TheEnd

:TheEnd

Тепер компіляцію і компонування програми можна виконати за допомогою однієї команди asm hello. Ім'я файлу hello підставляється в текст командного файлу замість параметра %1.

Наведений командний файл встановлює шлях до папки компілятора, видаляє попередні файли hello.obj і hello.exe, якщо вони існують, запускає компілятор і компонувальник. Якщо компілятор або компонувальник видає помилку, видається відповідне повідомлення. Якщо компіляція завершилася успішно, на екран виводяться всі файли з іменем hello.

Ярлик PROMPT для запуску командного рядка і командний файл asm.cmd потрібно помістити в кожну папку, в якій передбачається компілювати асемблерні програми.