Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ASM / asm_лр_ир_copy / О_ASM_ЛР1т.doc
Скачиваний:
8
Добавлен:
15.02.2015
Размер:
237.57 Кб
Скачать

Лабораторна робота №1

Тема: Ознайомлення з програмуванням мовою асемблер

Цілі: 1.Вивчення структури програми на мові асемблер та послідовності написання програми.

2. Вивчення формату команд

3. Вивчення псевдооператорів мови асемблер

4. Формування програми та її налагодження

6. Навчитися аналізувати програму за допомогою лістингу.

Завдання

  1. Набрати програму на мові асемблер виводу строкової та символьної інформації на екран монітору.

  2. Вивчити використання операторів

  3. Проаналізувати роботу програми за допомогою її лістингу.

  4. Розробити програму, яка демонструє використання операторів та їх властивості.

  5. Підготувати звіт

Набрати представлену програму:

title word

dat1 segment

a db 'Hello world1',10,13

b db 'Hello world2',10,13,'$'

c db '34'

dat1 endS

cod1 segment

assume cs:cod1, ds:dat1

start1: mov ax, dat1

mov ds, ax

Xor ax, ax

mov ah, 09h

mov dx, offset a

int 21h

mov ah, 02h

mov dx, ‘c’

int 21h

mov ah,4Ch

Int 21h

cod1 endS

end Start1

Контрольні питання

  1. Етапи створення програми на мові асемблер

  2. Написання програми в текстовому редакторі за допомогою мнемокодів асемблера та присвоєння їй імені з розширенням asm–***.asm.

  3. Одержання файлів з розширення obj (***.obj), lst (***.lst), map (***.map), exe (***.exe) та їх призначення.

  4. Формати команд мікропроцесора 8086

  5. Конструкція команд та псевдооператорів

  6. Мітка та ідентифікатор і різниця між ними

  7. Припустимими символами при написанні тексту програм

  8. Структура програми на мові асемблер

  9. . Псевдооператори опису сегмента мови асемблера

  10. Псевдооператори визначення ідентифікаторів

  11. Директиви опису даних

  12. Оператор одержання повної складової адреси

  13. Лічильник адреси

  14. Розміщення рядків на екран монітору

  15. Лістинг програми

  16. Програмні переривання

  17. Алгоритм програмного переривання

Завдання на реалізацію програми

  1. Використання псевдооператорів визначення ідентифікаторів: equ і "=" (дорівнює).

  2. Використання директив опису даних db, dw, dd та n dup(x),

  3. Використання операторів одержання повної складової адреси Seg та offset:

  4. Використання лічильника адреси ($)

  5. Керування розміщенням рядків при виводі на екран монітору за допомогою службових ASCII-кодів 0Ah та 0Dh

  6. Дослідити призначення блоку команд

mov ax, dat1

mov ds, ax

xor ax, ax

  1. Дослідити призначення псевдооператора assume

Зміст звіту

  1. Тема, цілі роботи

  2. Короткі теоретичні відомості

  3. Результати

  • представити лістинги програм

  • пояснення по роботі програм

  1. Висновки

2 Короткі теоретичні відомості

2.1. Етапи розробки програм мовою асемблер

Асемблер – це мова програмування, що дозволяє писати програми на машинному рівні, використовуючи при цьому умовні скорочення – мнемокоди, які транслюються асемблером у машинні команди. Послідовність створення програми мовою асемблер представлено на рис. 1.

Рисунок 1 – Схема розробки програми мовою асемблер

Написання програми мовою асемблер відбувається в кілька етапів:

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 і містить дані про розподіл пам'яті: розміри програми в цілому, адреси завантаження та розміри сегментів. У полі з іменем файлу бібліотеки вказується шлях до бібліотечних файлів і об’єктних модулів, які потрібні для компонування програми.

Соседние файлы в папке asm_лр_ир_copy