Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ASM_Lab18.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
126.46 Кб
Скачать

8

Міністерство освіти і науки, Молоді та спорту україни Львівський коледж Державного університету інформаційно-комунікаційних технологій

Навчальна дисципліна: Системне програмування

Лабораторія: Системного програмування

Спеціальність 5.05010201 Обслуговування комп’ютерних систем і мереж

Розглянуто

Затверджую

Заступник директора з НВР

____________ Плешівський Я.М.

“_____” ____________ 20___ р.

на засіданні циклової комісії

_______________________________

Протокол № ____ від _______ 20__ р.

Голова циклової комісії __________

Інструкція до лабораторної роботи:

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

Склав викладач

____________ Бохонко Б.А.

Львів 20__

Лабораторна робота № 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», а длоя доступу до файлу необхфідно скористатися директивою з вказанням шляху до файлу:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]