Мова програмування Assembler

Методическое пособие - Компьютеры, программирование

Другие методички по предмету Компьютеры, программирование

?мальне число проходів Асемблера.

Синтаксис: /M[число_проходів]

Примітки: Звичайно Турбо Асемблер працює, як однопрохідный асемблер. Необовязковий параметр /m дозволяє вам задати максимальне число прохо- дів, що Асемблер повинний виконувати в процесі асемблирования. Турбо Асемблер TASM автоматично определяет, що він може виконати менше заданого числа проходів.

Якщо ви не вказуєте явне число проходів, то за замовчуванням ис-користається значення 5. Деякі модулі містять конструкції, що правильно ассемблируются тільки при виконанні двох проходів. Якщо не дозволено виконувати кілька проходів, те такий модуль приведе до генерації принаймні одного попереджуючого повідомлення:

"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

Примітка: Даний параметр видаляє з одержуваного ?/p>