"Pass-dependent construction encountered"
(виявлена конструкція, що залежить від проходу)
Якщо зазначений параметр /m, то Турбо Асемблер буде правильно асемблювати такий модуль, але не буде оптимізовувати код програми, видаляючи операції NOP (незалежно від зазначеного числа проходів). У цьому випадку виводиться повідомлення:
"Module is pass dependent - compatibility pass was done"
(модуль залежить від проходу - виконаний прохід для сполучення)
Приклад:
TASM /M2 TEST1
Ця команда вказує TASM, що асемблюваня модуля TEST1 потрібно виконувати в два проходи.
Параметр /ML
Функція: Інтерпретує розходження в регістрах букв ідентифікаторів.
Синтаксис: /ML
Примітки: Параметр /ML вказує Турбо Асемблеру, що в всіх ідентифі- каторах потрібно розрізняти букви різного регістра (рядкові і прописні). Звичайно рядкові і прописні букви рассматриваются, як еквівалентні, тому імена ABCxyz, ABCXYZ і abcxyz позначають той самий ідентифікатор. Якщо ви задаєте параметр /ML, те ці три ідентифікатори будуть вважатися різними. Проте, навіть після завдання параметра /ML ключові слова Асемблера можна вводити як у верхньому, так і в нижньому регістрі. Ключові слова являють собою идентификаторы, убудовані в Асемблер, що мають спеціальне значення (мнемоніки інструкцій, директиви й оператори).
Приклад:
TASM /ML TEST1
де TEST1.ASM містить наступні оператори:
ABC DW 1; це не дублюючий ідентифікатор
abc DW 0; у ключових словах допускається використовувати різний
Mov Ax,[Bp] регістр
Параметр /MU
Функція: Перетворить ідентифікатори у верхній регістр.
Синтаксис: /MU
Примітки: Параметр /MU вказує Асемблеру, що потрібно игнорировать регістр у всіх ідентифікаторах. За замовчуванням у Турбо Асемблере задано, що в ідентифікаторах усі букви нижнього регистра повинні перетворю- ватися у верхній регістр (якщо це не скасовано за допомогою директиви /ML).
Приклад:
TASM /MU TEST1
При цьому всі ідентифікатори будуть перетворені у верхній регістр (що задано за замовчуванням):
EXTRN myfunc:NEAR
call myfunc;
не важливо, як була визначена функція: MYFUNC, Myfunk,...
Параметр /MV#
Функція: Задає максимальну довжину ідентифікаторів.
Синтаксис: /MV#
Примітки: Даний параметр задає максимальну довжину идентифи- каторов, що буде розрізняти TASM. Наприклад, при завданні параметра /mv3 TASM буде інтерпретувати ідентифікатори ABCC і ABCD, як той самий ідентифікатор.
Параметр /MX
Функція: Задає розрізнення на на рядкові і прописні букви (верхній і нижній регістр) у зовнішніх і загальнодоступних идентификаторах.
Синтаксис: /MX
Примітки: Параметр /MX повідомляє Турбо Асемблеру, що различать регістр букв потрібно тільки в зовнішніх (External) і общедоступных (Public) ідентифікаторах. Всі інші ідентифікатори в исходном файлі будуть інтерпретуватися, як набрані у верхньому регістрі.
Використовувати дану директиву випливає при виклику процедур з інших модулів, що асемблировались чи компілювалися так, що збереглося розходження в рядкових і прописних буквах (наприклад, модулів, що компілювалися в Турбо Сі).
Приклад:
TASM /MX TEST1
де TEST1 містить наступні вихідні рядки:
EXTRN Cfunc:NEAR
myproc PROC NEAR
call Cfunc
Параметр /N
Функція: Придушує у файлі лістинга таблицю ідентифікаторів.
Синтаксис: /N
Примітки: Параметр /N показує, що наприкінці файлу листинга ви не хочете використовувати звичайну таблицю ідентифікаторів. Звичайно напри- кінці файлу лістинга міститься повна таблиця ідентифікаторів, де показані всі ідентифікатори, їхні імена і значення.
Ви повинні задати файл лістинга або явно (у командной рядку), або за допомогою параметра /L. У противному випадку параметр /N не приводить до якихось дій.
Приклад:
TASM /L /N TEST1
Параметр /P
Функція: Перевіряє наявність "некоректного" коду в захищеному режимі.
Синтаксис: /P
Примітки: Параметр /P визначає, що ви хочете одержати попередження при будь-якій інструкції, що генерує в захищеному режимі "некоректний" (impure) код. Інструкції, що переміщають данийные в пам'ять шляхом перевизначення регістра CS: у захищеному режимі розглядаються, як некоректні, оскільки вони в захищеному режимі можуть працювати невірно, якщо не прийняти спеціальних мір.
Цей параметр потрібно використовувати тільки в тому випадку, якщо ви пишете програму, виконувану на процесорі 80286 чи 80286 у захищеному режимі.
Приклад:
TASM /P TEST1
де TEST1 містить наступні операторы:
.286P
CODE SEGMENT
temp DW ?
mov CS:temp,0 ; у захищеному режимі може выполняться некоректно
Параметр Q
Функція: Придушує запису .OBJ, що не вимагаються при компоновке.
Синтаксис: /Q
Примітка: Даний параметр видаляє з одержуваного в результаті файлу (файлів) .OBJ запису про авторські права і залежність файлів. Цей параметр не слід вказувати, якщо ви використовуєте утиліту MAKE чи аналогічні програми, що при роботі учитывают ці записи.
Параметр /R
Функція: Генерує реальні інструкції з крапкою, що плаває.
Синтаксис: /R
Примітки: Параметр /R вказує Турбо Асемблеру, що потрібно генерувати реальні інструкції з крапкою, що плаває, (замість генерації емуляційних інструкцій із крапкою, що плаває,). Використовуйте цей параметр, якщо ви хочете виконувати свою програму на машинах, оснащеній арифметичним співпроцесором 80х87.
Дія даного параметр змінює на зворотній параметр /E (при цьому генеруються емуляційні інструкції з крапкою, що плаває).
Якщо у вихідному файлі ви використовуєте директиву EMUL, то вона скасує дія інструкції /R, зазначеної в командному рядку.
Параметр командного рядка /R має той же ефект, що і використовування на початку вихідного файлу директиви NOEMUL і збігається з дією параметра командного рядка /JNOEMUL.
Приклад:
TASM /R SEGANT
TPC /$N+ /$E- TRIG.PAS
Перша команда асемблює модуль з реальними інструкціями з крапкою, що плаває. Другий командний рядок компілює вихідний модуль Паскаля з реальними інструкціями з крапкою, що плаває, який компонується з об'єктним файлом Асемблера.
Параметр /S
Функція: Задає послідовне впорядкування сегментів.
Синтаксис: /S
Примітки: Параметр /S вказує Турбо Асемблеру, що сегменти в об'єктному файлі потрібно розмістити в тому порядку, у якому Турбо Асемблер виявляє їх у вихідному коді. За замовчуванням Турбо Асемблер використовує саме таке упорядочивание сегментів, якщо ви не змінили його за допомогою параметра /A у командному рядку чи у файлі конфігурації.
Якщо за допомогою директиви .ALPHA у вихідному коді ви задали впорядкованість сегментів за абеткою, то ця директива скасує параметр /S, що задається в командному рядку.
Приклад:
TASM /S TEST1
По даній команді створюється об'єктний файл (TEST1.OBJ), сегменты якого упорядковані в тім порядку, як вони містяться в вихідному файлі.
Параметр /T
Функція: Придушує виведення повідомлень при умовному асемблювання.
Синтаксис: /T
Примітки: Параметр /T придушує усю виведену Турбо Ассемблеру на екран інформацію, крім попереджень і повідомлень про помилки, що виникають у результаті асемблювання.
Ви можете використовувати даний параметр при асемблювані декількох модулів, коли на екран бажано виводити тільки з спілкування про помилки.
Приклад:
TASM /T TEST1
Параметр /V
Синтаксис: /V
Примітки: Параметр /V використовується з метою сумісності. Він не приводить ні до яких дій і не робить впливу на ассемблирование.
Параметр /W
Функція: Керує генерацією попереджуючих повідомлень.
Синтаксис: /W
W-[клас попереджень]
W+[клас попереджень]
Примітки: Параметр /W керує висновком Турбо Асемблером поперед- жуючих повідомлень.
Якщо ви просто вкажете параметр /W, то будуть виводитися "слабкі" попередження. Такі попередження показують, що ви можете трохи поліп- шити ефективність вашої програми.
Якщо ви задасте параметр /W- без класу попереджень, то усі поперед- ження забороняються. Якщо за параметром вказується клас попереджень, то забороняються тільки ці попередження. Кожне попереджуюче повідом-лення має ідентифікатор із трьох букв:
ASS - мається на увазі використання 16-розрядного сегмента;
BRK - вимагаються квадратні дужки;
ICG - неефективна генерація коду;
LCO - переповнення лічильника адреси;
OPI - відкритий блок умови IF;
OPP - відкрита процедура;
OPS - відкритий сегмент;
OVF - арифметичне переповнення;
PDC - конструкція, що залежить від проходу;
PRO - запис у пам'ять у захищеному режимі вимагає перевизначення регістра CS;
RES - слово зарезервоване;
TPI - неприпустимо для Турбо Паскаля.
Якщо ви вказуєте параметр /W+ без класу попередження, то всі попере-дження будуть дозволені. Якщо ви задаєте параметр /W+ із класом попереджень з попереднього списку, то будуть раз вирішені тільки ці попередження.
За замовчуванням Турбо Асемблер спочатку починає асемблювання вихідного файлу з дозволом усіх попереджень, крім попереджень про неефективність коду (ICG).
Для керування висновком визначених повідомлень на заданому ділянці програми у файлі з вихідним кодом ви можете використовувати директиви WARN чи NOWARN. Більш докладно про ці директиви распозначається в Главі 3 "Довідкового посібника".
Приклад:
TASM /W TEST1
Наступний оператор у програмі TEST1.ASM виведе попереджуюче повідомлення про те, що не з'явиться на екрані, якщо не зазначений параметр /W:
mov bx,ABC; попередження про неефективність коду
ABC = 1
При завданні командного рядка:
TASM /W-OVF TEST2
якщо файл TEST2.ASM містить директиву:
DW 1000h = 20h
попередження генеруватися не будуть.
Параметр /X
Функція: Включає в лістинг блоки умовного асемблирования.
Синтаксис: /X
Примітки: Якщо при обчисленні блоків IF, IFNDEF, IFDEF і т.д. виходить значення FALSE, те параметр /X приводить до тому, що оператори, що містяться усередині умовного блоку, будуть включены в лістинг асемблирования. по даній директиві в лістинг будуть також включені самі директиви умовного асемблирования (звичайно вони в лістинг не включаються).