Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LAB1.DOC
Скачиваний:
2
Добавлен:
02.05.2019
Размер:
231.94 Кб
Скачать

Tasm [опції] імя_файла [, імя_обєктного_файла] [, імя_файла_лістингу] [, імя_файла_посилань]

Обов’язковим аргументом є тільки імя_файлу, а інші параметри, що записані в квадратних дужках можуть бути відсутніми. Файл який вказаний як обов’язків параметр повинен знаходитися на диску і мати розширення .asm. Якщо не задавати необов’язкові параметри то вище вказані файли не будуть створенні. Якщо ж необов’язкові параметри задаються, тот необхідно враховувати наступне:

  • Якщо імена об’єктного файлу, файлу лістингу і файлу посилань повинні співпадати з ім’ям вихідного файлу, то замість імен цих файлів необхідно поставити коми:

tasm.exe імя_файла , , ,

В результаті будуть створені файли імя_файла.obj, імя_файла.lst, імя_файла.crt.

  • Якщо необхідно вибірково створити файли, то в замін непотрібних файлів необхідно поставити параметр nul:

tasm.exe імя_файла , , ,nul .

В результаті будуть створені файли імя_файла.obj, імя_файла.lst.

Необов’язковий аргумент опції дозволяє задавати режими роботи транслятора, які наведено в таблиці 1.

Таблиця 1. - Опції транслятора 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). Це пов’язано з тим, що в захищеному режимі заборонено робити запис у сегмент коду. Клас попереджень PRO уже на стадії трансляції програми попереджає такого роду помилки;  RES — попередження про резервоване слово;  TPI — попередження про неприпустимість у Turbo Pascalі;  /W+ - дозволити всі повідомлення;  /W– - заборонити всі повідомлення 

/x 

Включити в лістинг усі блоки умовного асемблювання для директив IF, IFNDEF, IFDEF і т.п., у тому числі і ті що не виконуються 

/z 

При виникненні помилок поряд з повідомленням про їх виводити відповідні рядки тексту 

/zi, /zd, /zn 

/zi — включити в об'єктний файл інформацію для налагодження;  /zd — помістити в об'єктний файл інформацію про номери рядків, що необхідно для роботи відлагоджувальника на рівні вихідного тексту програми;  /zn — заборонити приміщення в об'єктний файл відладочної інформації. 

Після трансляції програми транслятор повідомить, що можливо в програмі є помилки, і вкаже на рядки програми де є помилка. Для виправлення помилок краще користуватися файлом лістингу, який створює транслятор.

Файл лістингу включає розширений код асемблера вихідної програми, зокрема, для кожної команди асемблера вказано машинний (об’єктний) код і зміщення кодовому сегменті. Крім того в кінці лістингу формуються таблиці, які містять інформацію про мітки і сегменти, що використовуються в програмі. Якщо є помилки, чи сумнівні ділянки коду, то в кінець лістингу включаються повідомлення про них.

Рядки файлу лістингу мають наступний формат:

<глибина_вкладеності><номер_рядка><зміщення><машинний_код><вихідний_код>

Тут:

  • <глибина вкладеності> — рівень вкладеності файлів, що включаються, чи макрокоманд в файлі;

  • < номер рядка> - номер рядка в файлі лістингу. Ці номери використовуються для локалізації помилок і формування таблиці перехресних посилань. Ці номери можуть не відповідати номерам рядків і вихідному файлі так як асемблер має директиву INCLUDE, що дозволяє включити в файл рядки іншого файлу. Нумерація при цьому, як і у випадку макрокоманд, буде послідовна для рядків обох файлів. Факт вкладеності коду одного файлу в іншій фіксується збільшенням значення <глибина_ вкладеності> на одиницю. Це стосується до макрокоманд;

  • <зміщення> — зміщення у байтах поточної команди відносно початку сегмента коду. Цей зсув називають також лічильником адреси. Величину зміщення обраховує транслятор для адресації в сегменті коду;

  • <вихідний_код> — машинне представлення команди асемблера, представленої далі в цьому рядку полем <вихідний_код>;

  • <вихідний_код> — рядок коду із вихідного файлу.

У файлі лістингу не всі рядки вихідної програми мають відповідний <машинний_код> . Це обумовлено тим, що вихідний файл на асемблері в загальному випадку може містити конструкції наступних типів:

  • команди асемблера — конструкції, яким відповідають машинні команди;

  • директиви асемблера — конструкції, що не генерують машинних команд, а тільки вказують транслятору на виконання деяких дій, або служать для завдання режиму його роботи;

  • макрокоманди — конструкції, які представлені одним рядком у вихідному файлі програми, після обробки транслятором генерують у об'єктному модулі послідовність команд, директив, або макрокоманд асемблера.

Формат лістингу і його повнота не є регламентованими. Їх можна змінити, задаючи у вихідному файлі програми директиви керування лістингом.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]