- •Лабораторна робота №1
- •2 Короткі теоретичні відомості
- •2.1. Етапи розробки програм мовою асемблер
- •1) Написання програми в текстовому редакторі за допомогою мнемокодів асемблера та присвоєння їй імені з розширенням asm–***.Asm.
- •2.2 Формати команд мікропроцесора 8086
- •2.3 Елементи мови асемблера
- •2.4 Формат команд і псевдооператорів мови асемблера
- •2.6.1 Опис сегмента
- •2.5 Структура програми
- •2.6 Псевдооператори мови асемблера
- •2.6.2 Псевдооператори визначення ідентифікаторів
- •2.6.3 Директиви опису даних
- •2.6.4 Оператори
- •2.7 Лістинг програми
- •2.8 Програмні переривання
1) Написання програми в текстовому редакторі за допомогою мнемокодів асемблера та присвоєння їй імені з розширенням asm–***.Asm.
Для створення нового файлу потрібно запустивши файловий менеджер FAR, нажати клавіші Shift та F4. В вікні яке появилося набрати ім’я файлу та присвоїти розширення asm. Наприклад: Prog1.asm. В створеному файлі набрати програму.
2) переведення (трансляція) програми в машинні коди, яке здійснюється за допомогою спеціальної програми Tasm.exe або Masm.exe. Для виконання трансляції можна використовувати командний рядок наступного формату:
TASM [опції] ім’я_початкового_файла [, ім’я_об’єктного_фай-ла] [, ім’я_файла_листинга] [, ім’я_файла_перехресних_посилань]
Інформація, яка задана в квадратних дужках не є обов’язковою для задавання. Якщо не задати імена файлів, показаних в квадратних дужках, буде сформовано відповідні файли з іменем початкового файла. Наприклад:
Tasm.exe Prog1.asm
У результаті роботи транслятора створюється програма в об'єктних кодах з розширенням obj (***.obj) і файл лістингу (***.lst) – Prog1.lst та Prog1.obj.
Об'єктний файл містить програму в кодах команд ЕОМ, а також дані для корекції адресних частин команд при об'єднанні декількох об'єктних файлів в одну програму.
Файл лістингу містить результати трансляції кожного рядка програми мовою асемблер, сам рядок програми та діагностичні повідомлення.
Трансляція виконується за допомогою внутрішнього перекодування та може здійснюватися за один або два проходи початкового тексту. У процесі трансляції відбувається створення таблиці міток і присвоєння міткам адрес розташування. При виникненні в програмі звертання до міток замість міток підставляються їхні адреси;
3) створення виконавчої програми, що здійснюється за допомогою програми редактора зв'язків (компонувальник, лінкувальник) Tlink.exe. Для створення виконавчої програми можна використовувати командний рядок такого формату:
TLINK [опції] список об’єктних файлів [, ім’я_завантажувального_модуля] [, ім’я_файла_карти] [, ім’я файла_ бібліотеки]
Вхідними файлами редактора зв'язків є об'єктні файли, які можуть розташовуватися також у бібліотечних. Список об’єктних файлів складається з компонованих файлів з розширенням ***.obj. Ці файли можуть бути розділені пропусками або знаком "+". Якщо не вказати ім’я завантажувального модуля, то буде створено завантажувальний файл з першим іменем зі списку об’єктних файлів типу ***.exe. Наприклад Tlink.exe Prog1.obj
Завантажувальний файл можна запускати на виконання. Ім’я файла карти має розширення ***.map і містить дані про розподіл пам'яті: розміри програми в цілому, адреси завантаження та розміри сегментів. У полі з іменем файлу бібліотеки вказується шлях до бібліотечних файлів і об’єктних модулів, які потрібні для компонування програми.
2.2 Формати команд мікропроцесора 8086
Для виконання певних дій процесору необхідно задати програму, що описують порядок цих дій. Незалежно від обраної мови програмування, вихідна програма повинна бути перетворена програмою транслятором у послідовність команд (кодів), зрозумілих на машинному рівні.
Структура машинних команд залежить від застосовуваного процесора. Однак можна виділити ряд основних принципів, які властиві їхній організації. Для організації роботи процесор повинен мати наступну інформацію:
дію або операцію, яку необхідно виконати;
розташування операндів, над якими необхідно виконати дії;
адреса розміщення результату, отриманого при виконанні операції.
Знаючи принципи побудови команд для одного процесора, можна розібратися зі структурою машинних команд інших процесорів.
У МП 8086 використовуються команди змінної довжини від 1 до 6 байт. Довжина кожної команди визначена розроблювачами з урахуванням імовірності її появи. Більш короткі команди мають менший час вибірки їх із пам'яті. Команди, які зустрічаються часто, мають короткі формати: одно-, дво- та трибайтні. Рідше використовуються команди, які мають більший формат: чотири-, п'яти- та шестибайтні.
Команда містить код операції (КОП), а також може містити 8-або 16-бітні операнд або зміщення адреси.
Якщо необхідно розглянути програму в машинних кодах, то можна подивитися лістинг нашої програми. Для цього потрібно провести трансляцію програми з розширенням ***.asm, задавши ключ /L.
Наприклад:
Tasm.exe Pr1.asm /L
