Вивчення принципів побудови препроцесорів (обробка директив підключення файла, умовної компіляції та обробка макросів)

Страницы работы

Содержание работы

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

Препроцесор

Мета роботи:

Освоїти принципи написання програм, які обробляють текст програми на мові асемблера, яка містить директиви препроцесора та макрокоманди.

Індивідуальне завдання:

 Створити програму – препроцесор системи команд макропроцесора мови асемблера, а також  підготовка первісного файла до компіляції.

Розробка алгоритму:

·  Відкриття вхідного файлу;

·  Пошук та обробка директив include;

·  Формування тимчасового файла з усіма підключаемими модулями;

·  Відкриття тимчасового файла;

·  Пошук та обробка директив умовної компіляції IFB, ELSE, ENDIF

·  Запис другого тимчасового файла, в якому оброблені директиви умовної компіляції;

·  Відкриття другого тимчасового файла;

·  Пошук макровизначень та формування списку макросів;

·  Пошук макровикликів та їх заміна;

·  Формування результуючого файла;

Алгоритм функції обробки директиви include


Алгоритм функції обробки Алгоритм функції обробки

директиви ifb:макросів:


Типы данных:

У програмі були використані наступні данні:

Структура для збереження тіл макросів:

struct mac{

   char string[255];

   mac * next;

};

struct list_mac{

   char name[34];

   char prm[100];

   int noprm;

   mac * body;

   list_mac * next;

   list_mac * prev;

};

Змінні:

name1 – Ім’я тимчасового файла після обробки директив includ ;

name2 - Ім’я тимчасового файла після обробки директив ifb;

Результат роботи програми:

;-------------------------------- Included file 1

datas segment

  a dd(?)

  as db 'the is a text'

datas ends

code1 segment

        cs:code

        :----------------- А это компилить

        mul dx,cx

        add ax,bx

        int 21h

code1 ends

;-------------------------------- end of included file 1

        mov ax,5

        nop

        mov ax,FUNCTION

        cpuid

        push bx

; Include file 2 - void

        NOP

;--- insert macro AP with paramline: ax,bx

    push ax

    push bx

    pop ax

    pop bx

;--- insert macro AP with paramline: si,dx

    push si

    push dx

    pop si

    pop dx

;--- insert macro aaa with paramline: ax,bx,cx

    mov ax, bx

    inc cx

        END

Висновок:

Вивчені принципи побудови препроцесорів (обробка директив підключення файла, умовної компіляції та обробка макросів).

Похожие материалы

Информация о работе