15290

Налагодження програми мовою Асемблер з використанням макросів

Лабораторная работа

Информатика, кибернетика и программирование

Налагодження програми мовою Асемблер з використанням макросів Лабораторна робота № 18 Тема: Технологія та прийоми програмування мовою Асемблер. Мета роботи: Набути навичок роботи з макросами при програмуванні мовою Асемблера. Навчитися с

Украинкский

2013-06-11

99 KB

5 чел.

PAGE  5

Налагодження програми мовою Асемблер з використанням макросів

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

Тема: Технологія та прийоми програмування мовою Асемблер.

Мета роботи: Набути навичок роботи з макросами при програмуванні мовою Асемблера. Навчитися створювати власні макроси.

  

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

  1.  Макроси

Макроси - це шаблони для генерації коду. Один раз створивши макрос, ми можемо використати його у багатьох місцях в коді програми. Макроси спрощують процес програмування на асемблері. Макроси дозволяють розширювати синтаксис асемблера, а також  додавати власні "команди", яких немає в процесорі.

Як правило, пакети з налагодження асемблерних програм мають набори вбудованих типових макросів. Нижче наведені макроси, що включені в емулятор emu8086:

  •  PUTC char – макрос з одним параметром, друкує символ ASCII на текучу позицію курсора.
  •  GOTOXY col, row – макрос з двома параметрами, задає позицію курсора.
  •  PRINT string – макрос з одним параметром, друкує рядок.
  •  PRINTN string – макрос з одним параметром, друкує рядок аналогічно до попереднього макросу, але додатково виконує “перехід на новий рядок” в кінці рядка.
  •  CURSOROFFвиключає текстовий курсор.
  •  CURSORON - включає текстовий курсор.

Для застосування любого з вказаних макросів необхідно вказати назву макроса з відповідними параметрами в коді програми, наприклад:

include emu8086.inc; включення бібліотеки макросів.

ORG    100h

GOTOXY 10, 5

PRINT 'Text'

GOTOXY 17, 7

PUTC 'O'           ; 65 - is an ASCII code for 'A'

PUTC 'K'

PUTC '!'

RET               ; повернення до операційної системи.

END               ; директива зупинки компілятора.

  1.  Створення власних макросів

Для створення макросу використовується директива macro. Ця директива має наступний синтаксис:

<назва_макросу> macro  [<список_параметрів>]

{

   <тіло_макросу>

}

 endm

Назва макросу вказується до або після директиви, а також може бути вказаний список параметрів (операндів). Параметри в списку перераховуються через кому. Усередині фігурних дужок записується тіло макросу. До речі, для коротких макросів можна писати усе це в одному рядку:

macro <назва_макросу> [<список_параметрів>] { <тіло_макросу> }

Тіло макросу - це код, який підставляється в те місце, де макрос буде викликаний. Створення макросу являється по суті лише його оголошенням, в цьому місці програми ніякого коду згенеровано не буде! Тому оголошення макросів зазвичай розміщують на самому початку програми або в окремому файлі.

Нижче наведений приклад власного макросу.

MyMacro    MACRO  p1, p2, p3

    MOV AX, p1

    MOV BX, p2

    MOV CX, p3

ENDM

ORG 100h

MyMacro 1, 2, 3

MyMacro 4, 5, DX

RET

Якщо Ви хочете створити свою бібліотеку макросів, то створені макроси поміщаються в окремий файл з розширенням «inc» або «asm», а длоя доступу до файлу необхфідно скористатися директивою з вказанням шляху до файлу:

Include шлях до файлу.

  1.  Постановка завдання

  1.  Використовуючи середовище емулятора МП і8086, створити і налагодити проект асемблерної програми з використанням стандартних макросів для виведення на екран монітора власного прізвища та імені, починаючи з заданої позиції монітора. Надпис OK!” розташувати у наступній стрічці посередині відносно основного надпису.  
    1.  Створити власний макрос за результатами попередніх лабораторних робіт, наприклад, з формування часової затримки.
    2.  Використовуючи середовище емулятора скласти лістинг програми (табл..1)

Таблиця 1 Лістинг програми

Зміщення

Код (Hex)

Мнемокод команди

К-сть байт

Коментар

100

101

102

103

.

.

.

  1.   Використовуючи покроковий режим роботи емулятора, проаналізувати хід виконання програми. Заповнити табл..2 результатів досліджень.
    1.  Використовуючи функціональні можливості емулятора, проаналізувати алгоритми виконання команд, що використані в програмі.
    2.  Інтерпретувати зміни стану регістрів загального призначення, сегментних регістрів та регістра стану (прапорців) МП при виконанні команд.

Таблиця 2 Результати досліджень

№ кроку

IP

Команда

SI

DX

ВX

AX

Адреси елементів масиву

і

Коментар

H

L

H

L

H

L

0

100

1

2

3

4

5

  1.  Варіанти індивідуальних завдань
    1.  Варіанти індивідуальних завдань наведені у табл..3.

Таблиця 3 Варіанти індивідуальних завдань

№ варіанту

Позиція курсора

Примітка

1

1, 10

2

5, 1

3

10, 10

4

5, 15

5

6, 20

6

7, 10

7

15, 15

8

13, 6

9

11, 5

10

5, 5

11

3, 12

12

8, 16

13

2, 10

14

4, 15

15

8, 8

  1.  Методичні вказівки

  1.  Увійти в середовище емулятора Emu8086.
    1.  Створити новий проект типу “com” під власним іменем.
    2.  У створеному проекті набрати текст програми відповідно до п.2.1 і індивідуального завдання.
    3.  Скомпілювати створений проект.
    4.  Проаналізувати повідомлення про помилки, якщо такі мають місце. Записати повідомлення у звіт до лабораторної роботи. Пояснити причини виникнення помилок і вказати шляхи їх усунення.
    5.  Після успішного завершення процедури компілювання проекту перейти до аналізу роботи створеної програми відповідно до п.п.2.2…2.6, використовуючи покроковий режим роботи емулятора.
    6.  В процесі аналізу роботи програми контролювати і записувати зміни вмісту регістрів, що приймають участь в роботі програми. Слідкувати за зміною значень прапорців в регістрі стану.
    7.  Проаналізувати алгоритми роботи використаних команд.

  1.  Зміст звіту

  1.  Назва теми.
    1.  Мета роботи.
    2.  Індивідуальне завдання.
    3.  Лістинг програми відповідно до п.2.3 з відповідними коментарями.
    4.  Результати досліджень команд відповідно до п.2.4.
    5.  Алгоритми виконання основних команд відповідно до п.2.5.
    6.  Інтерпретація вмісту регістрів відповідно до п.2.6.
    7.  Висновки, в яких звернути увагу на особливості виконання застосованих в програмі команд.

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

  1.  Що таке макрос?
    1.  Який порядок використання стандартних макросів?
    2.  Які переваги застосування макросів порівняно зі звичайним набором команд?
    3.  Які відмінності між макросом і підпрограмою?
    4.  Як створити власний макрос?
    5.  Як створити і застосовувати бібліотеку власних макросів?

  1.  Джерела інформації

  1.  Ю.І. Якименко, Т.О. Терещенко, Є.І. Сокол та ін. Мікропроцесорна техніка: Підручник. – Київ. – ІВЦ «Видавництво «Політехніка». – 2004. – 439 с.
    1.  Юров В., Хорошенко С. Assembler: учебный курс – СПб: Питер Ком, 1999. – 672 с.


 

А также другие работы, которые могут Вас заинтересовать

13178. ВИВЧЕННЯ ЯВИЩА ЕЛЕКТРОМАГНІТНОЇ ІНДУКЦІЇ 2.51 MB
  ЛАБОРАТОРНА РОБОТА № 17 ВИВЧЕННЯ ЯВИЩА ЕЛЕКТРОМАГНІТНОЇ ІНДУКЦІЇ Мета роботи: спостерігати явище електромагнітної індукції перевірити умови появи в котушці індукційного струму дослідити залежність напряму струму від властивостей магнітного поля перевірити с
13179. Дослідження МПС на базі мікропроцесорного комплекту КР580 821.5 KB
  ЛАБОРАТОРНА РОБОТА №1 Дослідження МПС на базі мікропроцесорного комплекту КР580 1. Мета роботи Вивчення структури та функцiональних можливостей мiкропроцесорної системи МIКРОЛАБ КР58О карти її памятi органiв управл...
13180. Дослiдження роботи оперативних запамятовуючих пристроїв з довiльною вибiркою 238.5 KB
  ЛАБОРАТОРНА РОБОТА №2 Дослiдження роботи оперативних запамятовуючих пристроїв з довiльною вибiркою 1. Мета роботи Вивчення конструкцiї та режимами роботи оперативних запомятовуючих пристроїв з довiльною вибiркою ЗПДВ на прикладi мiкросхеми К565 РУ2. 2. Короткі те...
13181. ЛАБОРАТОРНА РОБОТА №3 Функціонування МП КР580ВМ80 (i8080) 2.11 MB
  ЛАБОРАТОРНА РОБОТА №3 Функціонування МП КР580ВМ80 i8080 1. МЕТА РОБОТИ. Дослідження структури принципу роботи мікропроцесора та виконання окремих команд і простих програм з використанням різних методів адресації в програмах. 2. КОРОТКI ТЕОРЕТИЧНI ВIД...
13182. Програмування МП КР580ВМ80 150 KB
  Мікропроцесорні системи Лабораторна робота№4 ЛАБОРАТОРНА РОБОТА №4 Програмування МП КР580ВМ80 1. Мета роботи Вивчення команд Асемблера для мікропроцесора КР580ВМ80. Отримання пр...
13183. Дослідження роботи ППІ КР580ВВ55 2.21 MB
  ЛАБОРАТОРНА РОБОТА №5 Дослідження роботи ППІ КР580ВВ55 1. Мета роботи Вивчення структури та принципу роботи програмованого паралельного iнтерфейса КР580ВВ55. 2. Короткі теоретичні відомості 2.1. Призначення та режими роботи iнтерфейса Мiкросхема КП580ВВ55 використов...
13184. Дослідження апаратної структури мікро-ЕОМ на базі лабораторного стенду EV8031/AVR 52 KB
  Мікропроцесорні системи Лабораторна робота№6 ЛАБОРАТОРНА РОБОТА №6 Дослідження апаратної структури мікроЕОМ на базі лабораторного стенду EV8031/AVR 1. Мета роботи Вивчення функціональних можливостей учбовоналагоджувального ст
13185. Дослідження пристроїв відображення інформації в мікро-ЕОМ на базі лабораторного стенду EV8031/AVR 623 KB
  ЛАБОРАТОРНА РОБОТА №7 Дослідження пристроїв відображення інформації в мікроЕОМ на базі лабораторного стенду EV8031/AVR 1. Мета роботи Вивчення схем динамічної і статичної індикації...
13186. Дослідження системи переривань лабораторного стенду EV8031/AVR 143.5 KB
  ЛАБОРАТОРНА РОБОТА №8 Дослідження системи переривань лабораторного стенду EV8031/AVR Мета роботи Вивчення режимів роботи системи переривання ОЕОМ програмна обробка дискретних сигналів. Вивчення систем переривання режимів вводу дискретної інформації роз...