Директива EQU не визначає елемент даних, але визначає значення, що може бути використане для постановки в інших командах. Припустимо, що в сегменті даних закодовано наступна директиву EQU:
TIMES EQU 10
Ім'я, у даному випадку TIMES, може бути представлено будь-яким припустимим в асемблері ім'ям. Тепер, в якій-би команді чи директиві не використовувалося слово TIMES асемблер підставить значення 10. Наприклад, асемблер перетворить директиву - FIELDA DB TIMES DUP (?) у FIELDA DB 10 DUP (?).
Ім'я, зв'язане з деяким значенням за допомогою директиви EQU, може використовуватися в командах, наприклад:
COUNTR EQU 05
MOV CX,COUNTR
Асемблер заміняє ім'я COUNTR у команді MOV на значення 05, створюючи операнд із безпосереднім значенням, так, нібито він закодований.
MOV CX,05; Асемблер підставляє 05
Тут перевага директиви EQU полягає в тому, що багато команд можуть використовувати значення, визначене по імені COUNTR. Якщо це значення повинне бути змінене, то зміні підлягає лише одна директива EQU. Природньо, що використання директиви EQU розумне лише там, де підстановка має сенс для асемблера. У директиві EQU можна використо- вувати символічні імена:
1. TP EQU TOTALPAY
2. MPY EQU MUL
Перший приклад припускає, що в сегменті даної програми визначено ім'я TOTALPAY. Для будь-якої команди, що містить операнд TP, асемблер замінить його на адресу TOTALPAY. Другий приклад показує можливість використання в програмі слова MPY замість звичайного мнемокоду MUL.
Лекція 6 Транслятори мови Assembler
У Турбо Асемблері існує дуже могутній і гнучкий синтаксис командного рядка. Якщо ви запустите Турбо Асемблер, не задавши ніяких аргументів, наприклад:
TASM
то на екран виведеться довідкова інформація, (на англійській мові) яка описує безліч параметрів командного рядка і синтаксис для специфікації асемблюваних файлів. На Рис. 3.1 показано, як вона виглядає.
Turbo Assembler Version 2.0 Copyright (C) 1990
by Borland International, Inc
Usage:
TASM [параметри] исх_файл [,об'єкт_файл] [,лістинг] [,пер_посилання]
/a,/s Упорядкованість сегментів за алфавітним порядком чи порядку вихідного коду /c Генерація в лістингу перехресних посилань
/dSYM[=VAL] Визначається SYM = 0 чи SYM = VAL
/e,/r Эмулируемые чи дійсні інструкції з плавающей крапкою
/h,/? Виводиться дана довідкова інформація
/lPATH файли, що включаються, шукаються по маршруті, обумовленому PATH
/jCMD Визначає початкову директиву Асемблера (напримір, jIDEAL)
/kh#,/ks# Потужність хеш-таблицы #, потужність обсягу рядка #
/l,/la Генерація лістинга: l=звичайний лістинг, la=розширенаный
/ml,/mx,/mu Розрізнення в регістрі букв ідентифікаторів: ml=усі, mx=глобальні, mu=не розрізняються
/mv# Задає максимальну довжину ідентифікаторів
/m# Дозволяє виконання декількох проходів для зодоволення випереджальних посилань
/n Придушення в лістингах таблиці символів (ідентифікаторів)
/p Перевірка перекриття сегмента коду в захищеному режимі
/q Придушення записів.OBJ, що не вимагаються при компоновке
/t Придушення повідомлень при успішному асемблировании
/w0,/w1,/w2 Завдання рівня попередження: w0=немає попереджень, w1=w2=є попередження
/w-xxx,/w+xxx чи Заборона дозвіл попередження типу xxx
/x Включення в лістинги блоків умовного асемблирования
/zi,/zd Інформація про ідентифікатори для налагодження: zi=підлоганая, zd=тільки про номери рядків.
За допомогою параметрів командного рядка ви можете задавати ім'я одного чи декількох асемблируемых файлів, а також параметри, керуючі їх асемблированием.
Загальний вид командного рядка виглядає в такий спосіб:
TASM файли [; файли]...
Крапка з коми після лівої квадратної дужки дозволяє вам в одному командному рядку асемблювати кілька груп файлів. За бажанням ви можете задати для кожної групи файлів різні параметри, наприклад:
TASM /E FILE1; /A FILE2
У загальному випадку група файлів у командному рядку може мати вигляд:
[параметр]...исх_файл [[+] вихідний_файл]...
[,[об'єктний_файл] [, [файл_лістинга],
[, [файл_перехресних_посилань]]
Цей синтаксис показує, що група файлів може починатися з будь-якого параметра, що ви хочете застосувати до цих файлів а потім можуть випливати файли, що ви хочете асемблировать. Ім'ям файлу може бути одне ім'я файлу, або ви можете використовувати звичайні трафаретні символи DOS * і? для завдання групи ассемблируемых файлів. Якщо розширення імені файлу не зазначено, Турбо Асемблер використовує за замовчуванням розширення ".ASM".
TASM MYFILE,,,MYXREF
По цій команді файл MYFILE.ASM асемблируется у файл MYFILE.OBJ, лістинг виводиться у файл з ім'ям MYFILE.LST, а перекрестные посилання - у файл MYXREF.XRF.
Якщо при специфікації асемблируемых вихідних файлів ви используете трафаретні символи, їх можна використовувати також для завдання імен файлу лістинга й об'єктного файлу. Наприклад, якщо в поточному каталозі містяться файли XX1.ASM і XX2.ASM, то командний рядок:
TASM XX*,YY*
асемблює усі файли, що починаються з букв XX, генерує об’єктні файли, імена яких будуть починатися з YY, а іншу частина імені формує відповідно до імені вихідного файлу. Результуючі об'єктні файли одержать, таким чином, імена YY1, OBJ і YY2.OBJ.
Якщо ви не хочете створювати об'єктний файл, але хочете підлоги-чить файл лістинга, чи якщо ви хочете одержати файл перехресних посилань, але не хочете створювати файл лістинга чи об'єктний файл, можна як ім'я файлу задати нульове (фіктивне) устройство. Наприклад:
TASM FILE1,,NUL,
Ця команда асемблирует файл FILE1.ASM в об'єктний файл FILE1.OBJ. При цьому файл лістинга не створюється, а створюється файл перехресних посилань FILE1.XRF.