
- •Тема Основи програмування на мові асемблер та знайомство з програмним забезпеченням (відладчиками)
- •Теоретичні відомості
- •1.1 Особливості архітектури мікропроцесора типу Intel 80х86
- •Головні регістри мп Intel 8086 та їх призначення
- •1.2 Організація обчислень та узагальнена архітектура комп’ютера ibm pc
- •1.3 Основи програмування на мові асемблер та її синтаксис. Позначки, коди команд, операнди та директиви
- •1.4. Перетворення програми з тексту на мові асемблера у виконуваний модуль
- •1.5. Основи роботи з програмою afd
- •1.6. Основи роботи з програмою td
- •2. Порядок виконання роботи
- •4. Контрольні питання:
- •Сегментація програми. Сегменти коду, даних та стеку. Їх розташування в пам’яті еом. Директиви мови асемблера segment та ends.
1.4. Перетворення програми з тексту на мові асемблера у виконуваний модуль
Для того, щоб програма, написана на мові асемблера, могла бути виконана процесором, вона, як і програма на будь-якій іншій мові, окрім машинної, має бути трансльована (за допомогою асемблера) та скомпонована (за допомогою редактора зв’язків).
Для виконання лабораторних робіт у визначеному нижче вигляді можна застосовувати будь-який асемблер, що використовує синтаксис Intel. Можна використовувати асемблер з іншим синтаксисом, наприклад синтаксисом AT&T, але для цього буде потрібно внести відповідні зміни у наведені нижче приклади та зразки.
Тут ми розберемо послідовність дій, необхідну для трансляції і компонування програм за допомогою транслятора MASM.
Трансляція виконується командою
MASM ім’я_файлу
Інші параметри команди можна подивитися за загальним правилом за допомогою команди
MASM /?
Компонування EXE-програми здійснюється за допомогою команди
LINK об’єктний_модуль
Для компонування COM-програми необхідно додати ключ /TINY:
LINK /TINY об’єктний_модуль
Інші параметри команди можна подивитися за загальним правилом за допомогою команди
LINK /?
Довідку з ассемблера MASM та його мови можна отримати за допомогою команди
QH
Інструментальне середовище та його застосування
До складу інструментального середовища входять:
Редактор текстів, який використовується для створення і редактування початкових (source, исходных) файлів з програмами на мові Асемблера. Рекомендується створювати початкові файли з розширенням .asm. Як редактор текстів может бути застосований, наприклад, додаток Блокнот.
Транслятор програм на мові Асемблера - MASM або TASM (файли masm.exe або tasm.exe). Транслятор обробляє початковий файл і генерує об'єктний файл (розширення - .obj), файл лістингу (.lst) і файл перехресних посилань (.сrf). Об'єктний файл містить програму в кодах команд ЕОМ, а також дані для корекції адресних частин команд для об'єднання де-кількох об'єктних файлів в одну програму. Файл лістингу містить результати трансляціїї кожного рядка програми на мові Асемблера, сам рядок та діагностичні повідомлення. Транслятори програм на мовах високого рівня (наприклад на мові Паскаль) також можуть створювати файли лістингу. Але в них, як правило, відсутні результати трансляції рядків програми в машинні команди. Наявність в файлі лістингу програм на мові Асемблера результатів трансляції дозволяє полегшити вивчення мови Асемблера та системи команд ЕОМ. Файл перехресних посилань містить перелік рядків програми на мові Асемблера, в яких використовується той чи інший ідентифікатор. Цей файл особливо корисний при розробці значних по розміру програм в випадку виправлення в них помилок.
Редактор зв'язків (компоновщик) - LINK або TLINK (файли link.exe або tlink.exe). Вхідними файлами редактора зв'язків є об'єктні файли, що можуть розташовуватися також у бібліотечних файлах. Редактор створює завантажувальний файл (загрузочный файл, exe-file), з расширением.exe, а також файл розподілу пам'яті (розширення - .map). Завантажувальний файл містить програму в кодах коианд ЕОМ, а також дані для корекції адресних частин команд, які залежать від початкової адреси розміщення програми в пам'яті. Файл розподілу пам'яті містить дані про розміри програми в цілому та окремих її частин (сегментів).
Налагоджувач (отладчик, debugger) - AFD або TD (файли afd.exe або td.exe). Оскільки виведення повідомлень (на екран або прінтер) на мові Асемблера порівняно трудомістке (особливо для чисел), то при програмуванні на цій мові налагоджувачі застосовуються значно інтенсивніше, ніж у випадку мов високого рівня.
Докладні інструкції про запуск МАSМ і LINK наведені у файлі masm.txt.. Порядок роботи з налагоджувачем AFD наведений у файлі afd.txt.. Запуск програм TASM і TLINK, а також робота з налагоджувачем TD докладно викладені в кн. "В.Юров, Assembler". Серед широких можливостей налагоджувачів AFD та TD необхідно насамперед вивчити наступні функції:
Призначення вікон налагоджувача та переключення з вікна на вікно;
Завантаження програм в пам'ять;
Керування відображенням (скролінг) програм у вікні налагоджувача;
Заміна вмісту регістрів мікропроцесора;
Відображення та заміна вмісту любих областей оперативної пам'яті;
Покомандний режим виконання програм;
Запуск програм на виконання в автоматичному режимі з заданням адрес зупинки;
Послідовність дій при створенні і налагодженні програм на мові Асемблера відповідає иттераційній схемі