- •1.4. Вимоги до структури програм
- •1.5. Вимоги до стилю програм мовою Асемблера
- •1.6 Огляд операцій, які рекомендуються на друге заняття.
- •1.7. Завдання на виконання лабораторної роботи Перше заняття
- •Друге заняття
- •1.8. Контрольні запитання
- •Додаток а Довідник користувача макроасемблера masm та редактора зв'язків link
- •Запуск редактора зв'язків link.
- •Запуск afd
- •Загальна характеристика налагоджувача
- •Опис основних процедур
- •Завантаження програми для надагоджування.
- •Визначення початкової адреси дизасемблювання
- •Команда g (виконати)
- •Формування файлу дизасембльованого коду
- •Використання вбудованого асемблера
- •Використання функціональних клавіш
- •Завершення роботи та повернення в операційну систему
1.8. Контрольні запитання
Яку структуру має програма мовою Асемблера?
Яке призначення мають програми MASM, LINK і AFD?
Назвіть основні опції програм MASM, LINK і AFD.
Як визначити основну програму мовою Асемблера?
Чим відрізняються директиви мови Асемблера від її машинних інструкцій?
Додаток а Довідник користувача макроасемблера masm та редактора зв'язків link
А.1 Запуск макроассемблера.
Запуск макроассемблера може виконуватися у двох режимах:- з використанням підказок або за допомогою командного рядка.
Для запуску макроассемблера з використанням підказок необхідно ввести командний рядок, що містить тільки ім'я MASM (або стандартним запуском програм в додатку FAR або в іншому командному процесі). MASM перейде в діалоговий режим і серією підказок запросить у користувача інформацію про наступні файли (відповідь полягає в наборі потрібних символів і натисканні клавіші ENTER):
Ім'я початкового файлу. Якщо при відповіді не зазначене розширення, передбачається розширення .ASM.
Ім'я об'єктного файлу. Якщо при відповіді не зазначене розширення, передбачається OBJ. Базове ім'я об'єктного файлу по умовчанню збігається з базовим ім'ям початкового файлу.
Ім'я файлу лістингу. Якщо при відповіді не зазначене розширення, передбачається LST. Базове ім'я файлу лістингу по замовчуванню NUL (тобто файл лістингу не створюється)
Ім'я файлу перехресних посилань. Якщо при відповіді не зазначене розширення, передбачається CRF. Базове ім'я файлу лістинга за замовчуванням NUL (тобто файл перехресних посилань не створюється).
Наприкінці будь-якої відповіді після символу / можуть бути задані опції макроасемблера, які описані нижче. Якщо в якій-небудь відповіді специфікований символ ; (крапка з комою) MASM вийде з діалогового режиму й установить імена, що залишилися, за замовчуванням з наступного списку:
<ім'я початкового файлу>.OBJ
NUL.LST
NUL.CRF
У будь-якій відповіді також можуть бути задані відповіді на декілька наступних підказок. У цьому випадку одна відповідь від іншого відокремлюється комою.
Для запуску MASM за допомогою командного рядка необхідно ввести командний рядок наступного вигляду:
MASM <ім'я початкового файлу>[,[<ім'я об'єктного файлу>] [,[<ім'я файлу лістингу>][,[<ім'я файлу посилань>]]]] [<опції>][;]
Символ ; може бути специфікований у будь-якому місці командного рядка до того, як були визначені усі файли. У цьому випадку імена невизначеними файлів, що залишилися, приймаються за замовчуванням із наведеного вище списку. З цього ж списку приймаються за замовчуванням імена файлів, специфікація яких у командному рядку опущена. Якщо в командному рядку виявлена помилка, про це повідомляється через консоль, і MASM переходить у діалоговий режим. Опції MASM можуть розташовуватися в будь-якому місці командного рядка.
Ім'я кожного файлу може супроводжуватися інформацією про шлях до каталогу, що містить цей файл, інакше пошук початкового файлу; створення результуючих файлів буде здійснюватися в поточному каталозі.
Робота MASM може бути в будь-який момент припинена натисканням клавіш CONTROL-C.
Приклади командних рядків запуску MASM:
Masm lab1.asm,lab1.obj,lab1.lst;
Masm lab1.asm,lab1.obj,lab1.lst
Masm lab1;
Masm lab1,,lab1;
Опції MASM.
Опції MASM дозволяють керувати роботою макроасемблера незалежно від початкової програми. Кожна опція позначається попереднім символом / і може кодуватися як малими, так і великими буквами. Опції можуть розташовуватися в будь-якому місці командного рядка чи відповіді на підказку. Нижче подається список найбільш вживаних опцій MASM з описом функцій, які вони виконують.
/HELP Вивести на екран повний перелік опцій MASM. Транслятор MASM постійно удосконалюється, існує значна кількість його версій, в яких можливі зміни в переліку опцій. Тому опція /HELP дозволяє уточнювати перелік опцій для конкретної версії MASM.
/A Сегменти в об'єктному файлі розташовуються за абеткою. При відсутності опції розташування сегментів відповідає порядку у початковому файлі.
/D Діагностичні повідомлення після 1-го перегляду помістити в лістинг програми. Багато помилок 1-го перегляду виправляються на 2-ому перегляду, і, якщо не задано /D, у лістинг не потрапляють. Задання цієї опції дає більш глибоку діагностику початкового тексту. При специфікації /D помилки як 1-го, так і 2-го проходів видаються на консоль, навіть коли файл лістингу не створюється. Порівняння лістингу 1-го та 2-го переглядів дозволяє ефективніше локалізувати помилку Phase error.
/D<ім'я> = [value] Визначити ім'я. Зазначене ім'я приймає абсолютне значення value і вводиться в початкову програму аналогічно використанню директиви EQU. Ця опція дозволяє створювати різні версії програм із одного і того ж початкового файлу, наприклад, шляхом використання визначеного опцією імені у директивах умовного асемблювання.
/I<шлях> - Завдання шляху пошуку файлів, що підключаються у початковий директивою INCLUDE без явної вказівки шляху. Вказівка шляху в INCLUDE більш приоритетна, ніж в опції /I.
/ML - Установити розходження між великими та малими буквами в ідентифікаторах. При відсутності цієї опції малі літери автоматично перетворяться в великі. Опція може знадобитися для сумісності з програмами на регістрово-чуттєвих мовах.
/MX - Установити розходження між великими та малими буквами в загальних і зовнішніх іменах. Опція подібна /ML, але її дія поширюється лише на імена, які задані у директивах PUBLIC або EXTRN.
/N - Заборонити формування у файлі лістингу таблиць макроструктур, записів, сегментів і імен.
/R - Генерація коду для математичного співпроцесора. Застосовується при відсутності в початковому файлі директив задання допустимих команд для процесорів, починаючи з i80386.
/V - Включити в діагностику на екран інформацію про кількість оброблених рядків та ідентифікаторів користувача. При відсутності цієї опції на екран видається інформація лише про кількість помилок і об'єм пам'яті.
/X - Виводити в лістинг тіла блоків IF (IF, IFE, IF1, IF2, IFDEF, IFNDEF, IFB, IFNB, IFIDN і IFDIF), для яких умови асемблювання не виконуються і коди команд по цій причині не генеруються
/Z - Виводити на екран рядки початкового файлу, що містять помилки. При відсутності цієї опції на консоль видаються тільки повідомлення про помилку і номер рядка.
