
- •Міністерство освіти і науки, Молоді та спорту україни Львівський коледж Державного університету інформаційно-комунікаційних технологій
- •Інструкція до лабораторної роботи:
- •Лабораторна робота № 18
- •Короткі теоретичні відомості
- •Макроси
- •Створення власних макросів
- •Include ‘шлях до файлу’.
- •Постановка завдання
- •Варіанти індивідуальних завдань
- •Методичні вказівки
- •Контрольні запитання
- •Джерела інформації
Міністерство освіти і науки, Молоді та спорту україни Львівський коледж Державного університету інформаційно-комунікаційних технологій
Навчальна дисципліна: Системне програмування
Лабораторія: Системного програмування
Спеціальність 5.05010201 Обслуговування комп’ютерних систем і мереж
|
Розглянуто |
|
|
Затверджую Заступник директора з НВР ____________ Плешівський Я.М. “_____” ____________ 20___ р. |
на засіданні циклової комісії _______________________________ Протокол № ____ від _______ 20__ р. Голова циклової комісії __________ |
Інструкція до лабораторної роботи:
№ 18 "Налагодження програми мовою Асемблер з використанням макросів"
Склав
викладач ____________
Бохонко Б.А.
Львів 20__
Лабораторна робота № 18
Тема: Технологія та прийоми програмування мовою Асемблер.
Мета роботи: Набути навичок роботи з макросами при програмуванні мовою Асемблера. Навчитися створювати власні макроси.
Короткі теоретичні відомості
Макроси
Макроси - це шаблони для генерації коду. Один раз створивши макрос, ми можемо використати його у багатьох місцях в коді програми. Макроси спрощують процес програмування на асемблері. Макроси дозволяють розширювати синтаксис асемблера, а також додавати власні "команди", яких немає в процесорі.
Як правило, пакети з налагодження асемблерних програм мають набори вбудованих типових макросів. Нижче наведені макроси, що включені в емулятор 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 ; директива зупинки компілятора.
Створення власних макросів
Для створення макросу використовується директива 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», а длоя доступу до файлу необхфідно скористатися директивою з вказанням шляху до файлу: