## Опции транслятора TASM и редактора связей TLINK

В данном документе приведены опции командной строки:

- для транслятора Turbo Assembler фирмы Borland (TASM) (версия 3.0 и выше);
- редактора связей TLINK.

Во избежание несовместимости используйте программы TLINK и TASM одной версии.

### Опции транслятора TASM

/a, /s | /a — сегменты в объектном файле должны быть размещены в алфавитном порядке; /s — сегменты в объектном файле следуют в порядке их описания в программе
/c | Указание на включение в файл листинга с информацией о перекрестных ссылках
/dимя_иденти- фикатора[=значение] | Определяет идентификатор. Это эквивалент директивы ассемблера =, как если бы она была записана в начале исходного текста программы
/e, /r | /e — генерация инструкций эмуляции операций с плавающей точкой; /r — разрешение трансляции действительных инструкций с плавающей точкой, которые должны выполняться реальным арифметическим сопроцессором
/h, /? | Вывод на экран справочной информации. Это эквивалентно запуску TASM без параметров
/iпуть | Задает путь к включаемому по директиве INCLUDE файлу. Синтаксис аргумента “путь” такой же, как для команды PATH файла autoexec.bat
/jдиректива_TASM | Определяет директивы, которые будут транслироваться перед началом трансляции исходного файла программы на ассемблере. В директиве не должно быть аргументов
/khn | Задает максимальное количество идентификаторов, которое может содержать исходная программа, то есть фактически задается размер таблицы символов транслятора. По умолчанию программа может содержать до 16384 идентификаторов. Это значение можно увеличить (но не более чем до 32 768) или уменьшить до n. Сигналом к тому, что необходимо использовать данный параметр, служит появление сообщения “Out of hash space” (“Буферное пространство исчерпано”)
/l, /la | /l — указывает на необходимость создания файла листинга, даже если он не “заказывается” в командной строке; /la — показать в листинге код, вставляемый транслятором для организации интерфейса с языком высокого уровня по директиве MODEL

/ml, /mx, /mu

/ml — различать во всех идентификаторах прописные и строчные буквы;
/mx — различать строчные и прописные символы во внешних и общих идентификаторах. Это важно при компоновке с программами на тех языках высокого уровня, в которых строчные и прописные символы в идентификаторах различаются;
/mu — воспринимать все символы идентификаторов как прописные

/mvn | Определение максимальной длины идентификаторов. Минимальное значение n равно 12
/mn | Установка количества (n) проходов транслятора TASM. По умолчанию транслятор выполняет один проход. Максимально при необходимости можно задать выполнение до 5 проходов
/n | Не выдавать в файле листинга таблицы идентификаторов (в таких таблицах содержатся все имена идентификаторов и их значения)
/os, /o, /op, /oi | Генерация оверлейного кода
/p | Проверять наличие кода с побочными эффектами при работе в защищенном режиме
/q | Удаление из объектной программы лишней информации, ненужной на этапе компоновки
/t | Подавление вывода всех сообщений при условном ассемблировании, кроме сообщений об ошибках (то есть тестирование программы на предмет выявления синтаксических ошибок)
/w0, /w1, /w2 | Генерация предупреждающих сообщений разного уровня полноты: w0 — сообщения не генерируются; w1, w2 — сообщения генерируются

/w-xxx, /w+xxx

Генерация предупреждающих сообщений класса
xxx (эти же функции выполняют директивы WARN и NOWARN). Знак “-” означает “запретить генерацию сообщений класса xxx”. Знак “+” означает “разрешить генерацию сообщений класса xxx”. Классы предупреждающех сообщений обозначаются идентификатором из трех символов:
ALN — выравнивание сегмента в памяти;
ASS — подразумевается использование 16-разрядного сегмента;
BRK — требуются квадратные скобки;
ICG — неэффективная генерация кода;
LCO — переполнение счетчика адреса;
OPI — открытый блок условия IF;
OPP — открытая процедура;
OPS — открытый сегмент;
OVF — арифметическое переполнение;
PDC — конструкция, зависящая от прохода;
PRO — запись в память в защищенном режиме требует переопределения регистра CS. Использование этого класса предупреждений имеет смысл при написании программ, работающих в защищенном режиме (под Windows). На уроке 16 обсуждался момент, связанный с тем, что в защищенном режиме запрещено производить запись в сегмент кода. Класс предупреждений PRO призван уже на стадии трансляции программы предупредить такого рода ошибки;
RES — предупреждение о резервируемом слове;
TPI — предупреждение о недопустимости в Turbo Pascal;
/W+ — разрешить все сообщения;
/W– — запретить все сообщения

/x | Включить в листинг все блоки условного ассемблирования для директив IF, IFNDEF, IFDEF и т. п., в том числе и невыполняющиеся
/z | При возникновении ошибок наряду с сообщением о них выводить соответствующие строки текста
/zi, /zd, /zn | /zi — включить в объектный файл информацию для отладки; /zd — поместить в объектный файл информацию о номерах строк, что необходимо для работы отладчика на уровне исходного текста программы; /zn — запретить помещение в объектный файл отладочной информации.

### Опции компоновщика (редактора связей) TLINK

/x | Не создавать файл карты (map)
/m | Создать файл карты
/s | То же, что /m, но дополнительно в файл карты включается информация о сегментах (адрес, длина в байтах, класс, имя сегмента и т. д.)
/l | Создать раздел в файле карты с номерами строк
/n | Игнорировать библиотеки, указываемые другими компиляторами
/c | Различать строчные и прописные буквы в идентификаторах (в том числе и внешних)
/v | Включить отладочную информацию в выполняемый файл
/3 | Поддержка 32-битного кода
/d | Предупреждать о дублировании символов в компонуемых библиотеках
/t | Создать файл типа .com (по умолчанию .exe)