Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Лабораторна робота № 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
Висновок:
Вивчені принципи побудови препроцесорів (обробка директив підключення файла, умовної компіляції та обробка макросів).
Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.