
- •6.050101 «Комп’ютерні науки»
- •Загальні вимоги до виконання лабораторних робіт
- •Лабораторна робота №1
- •1. Основні теоретичні відомості
- •1.1 Основні поняття
- •1.2 Створення процесу
- •1.3 Створення потоку
- •2. Хід роботи
- •4. Завдання
- •5. Контрольні запитання
- •6.Список використаної літератури
- •Додаток 1
- •Додаток 2
- •Додаток 3
- •Функція CreateProcess створює новий процес.
- •Додаток 4
- •Додаток 5
- •Addr ThreadId – Створює новий потік.
- •Додаток 6
- •Додаток 7
- •Лабораторна робота №2
- •1. Основні теоретичні відомості
- •1.1 Механізми міжпроцесової взаємодії
- •1.2 Механізми синхронізації процесів та потоків
- •1.3 Об’єкти синхронізації
- •1.4 Очікуючі функції
- •1.5 Створення атома
- •1.6 Створення каналу
- •2. Хід роботи
- •4. Завдання
- •5. Контрольні запитання
- •6.Список використаної літератури
- •Додаток 1
- •Додаток 2
- •Додаток 3
- •Додаток 4
- •Додаток 5 Детальний опис функції створення анонімного каналу
- •Додаток 6 Детальний опис функції створення іменованого каналу
- •Додаток 7
- •Додаток 8
- •Додаток 9 Текст програми створення анонімного каналу
- •Додаток 10
- •Лабораторна робота №3
- •1. Основні теоретичні відомості
- •2. Приклад програми створення dll
- •Опис програми My_dll.Asm та файлу лістінга My_dll.Def
- •4. Трансляція та компонування dll Для того, щоб відтранслювати(ml.Exe) та зкомпонувати (link.Exe) даний .Asm код, потрібно використовувати наступні параметри:
- •5. Приклад використання функції з бібліотеки
- •Приклад програми завантаження dll
- •7. Створення файлу лістінгу існуючої бібліотеки
- •8. Приклад передачі даних у функцію бібліотеки Створення динамічно завантажуваної бібліотеки
- •Передача параметру у функцію бібліотеки
- •9. Хід роботи
- •11. Завдання
- •12. Контрольні запитання
- •13. Список використаної літератури
- •Лабораторна робота №4
- •1. Основні теоретичні відомості
- •Параметри функції CreateToolhelp32Snapshot:
- •2. Перегляд процесів
- •3. Перегляд потоків
- •Значення результуючого параметру (регістр еах) таке саме як в Process32First і Process32Next.
- •4. Перегляд хіпів асоційованих з процесом
- •5. Перегляд модулів, які використовує процес
- •6. Керування процесами
- •7. Хід роботи
- •9. Завдання На 75 балів виконати 4 завдання:
- •10. Контрольні запитання
- •11. Список використаної літератури
- •Додаток 1
- •Лабораторна робота №5
- •Основні теоретичні відомості
- •1.1 Основні поняття
- •1.2 Категорії даних
- •1.3 Відкриття і закриття ключів реєстру
- •1.4 Створення підключа у відкритому ключі реєстру
- •1.5 Отримання інформації з ключа реєстру
- •1.6 Перелічення списку значень для заданого ключа реєстру
- •1.7 Виявлення змін в гілці реєстру
- •1.8 Робота з налаштуваннями операційної системи через реєстр
- •2. Хід роботи
- •4. Завдання
- •5. Контрольні запитання
- •6. Список використаної літератури
- •Додаток 1
- •Лабораторна робота №6
- •1. Основні теоретичні відомості
- •Породження процесів
- •1.2 Породження потоків
- •2. Хід роботи
- •4. Індивідуальні завдання
- •5. Контрольні запитання
- •Для нотаток Для нотаток Для нотаток
8. Приклад передачі даних у функцію бібліотеки Створення динамічно завантажуваної бібліотеки
;-------------------------------------
; The_Dll.asm
;-------------------------------------
.386
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
.data
AppName db "My_DLL",0
.code
DllEntry proc hInstance:HINSTANCE, reason:DWORD, reserved1:DWORD
mov eax,TRUE
ret
DllEntry Endp
TestHello proc lpszText:DWORD
invoke MessageBox,NULL, lpszText, addr AppName,MB_OK
ret
TestHello endp
invoke ExitProcess, NULL
End DllEntry
Передача параметру у функцію бібліотеки
;--------------------------------------------------
; Use_DLL.asm
;---------------------------------
.386
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
includelib The_DLL.lib
includelib \masm32\lib\kernel32.lib
TestHello PROTO :DWORD
.data
Message db "Hello, World",0
.code
start:
invoke TestHello, addr Message
invoke ExitProcess,NULL
end start
9. Хід роботи
Ознайомитись з основними теоретичними відомостями даної лабораторної роботи.
Ознайомитись з приведеними в теоретичних відомостях прикладами програм.
Ознайомитись з додатковими джерелами, приведеними в п.13 (Література).
Затвердити номер індивідуального завдання у викладача.
Виконати завдання згідно з номером.
10. Зміст звіту
Звіт повинен містити:
титульну сторінку;
мету роботи;
завдання, робочий варіант тексту програми, результат виконання програми;
короткі висновки по проведеній роботі.
11. Завдання
Розробити на мові асемблер для ОС Windows програми, використовуючи пакет MASM32. Результат виводиться на екран.
На 60 балів потрібно розробити дві програми. Одна програма має створювати динамічно завантажувану бібліотеку. Дана бібліотека має містити функцію, котра виводить Ф.І.П. у вікні повідомлення. Інша програма має завантажити цю бібліотеку використовуючи директиву includelib та викликати дану функцію з динамічно завантажуваної бібліотеки.
Тип вікна повідомлення – згідно варіанту:
№ |
№ |
Тип |
1 |
2 |
MB_ABORTRETRYIGNORE |
3 |
4 |
MB_OK |
5 |
6 |
MB_OKCANCEL |
7 |
8 |
MB_RETRYCANCEL |
9 |
10 |
MB_YESNO |
11 |
12 |
MB_YESNOCANCEL |
13 |
14 |
MB_ICONEXCLAMATION |
15 |
16 |
MB_ICONWARNING |
17 |
18 |
MB_ICONINFORMATION |
19 |
20 |
MB_ICONASTERISK |
21 |
22 |
MB_ICONQUESTION |
23 |
24 |
MB_ICONSTOP |
25 |
26 |
MB_ICONERROR |
27 |
28 |
MB_ICONHAND |
На 75 балів потрібно розробити дві програми. Одна програма має створювати динамічно завантажувану бібліотеку. Дана бібліотека має містити функцію, котра виводить Ф.І.П. у вікні повідомлення (тип повідомлення згідно завдання на 60 балів). Інша програма має завантажити цю бібліотеку використовуючи функцію LoadLibrary та викликати дану функцію з динамічно завантажуваної бібліотеки.
На 95 балів потрібно розробити дві програми згідно варіанту.
Розробити динамічно завантажувану бібліотеку, котра містить функцію, що виводить у вікні повідомлення поточний день тижня (Понеділок, …).
Розробити другу програму, котра використовує цю функцію.
Розробити динамічно завантажувану бібліотеку, котра містить функцію, що виводить у вікні повідомлення поточну директорію розміщення системних файлів ОС Windows. Розробити другу програму, котра використовує цю функцію.
Розробити динамічно завантажувану бібліотеку, котра містить функцію, що виводить у вікні повідомлення поточні координати курсору . Розробити другу програму, котра використовує цю функцію.
Розробити динамічно завантажувану бібліотеку, котра містить функцію, що виводить у вікні повідомлення поточний час (00:00:00). Розробити другу програму, котра використовує цю функцію.
Розробити динамічно завантажувану бібліотеку, котра використовує функцію, що виводить отриманий параметр у вікно повідомлення. Розробити другу програму, котра передає поточний день тижня (Понеділок, …) параметром у функцію бібліотеки.
Розробити динамічно завантажувану бібліотеку, котра містить функцію, що виводить у вікні повідомлення поточне ім’я користувача . Розробити другу програму, котра використовує цю функцію.
Розробити динамічно завантажувану бібліотеку, котра містить функцію, що виводить у вікні повідомлення поточне ім’я комп’ютера. Розробити другу програму, котра використовує цю функцію.
Розробити динамічно завантажувану бібліотеку, котра використовує функцію, що виводить отриманий параметр у вікно повідомлення. Розробити другу програму, котра передає поточний час (00:00:00) параметром у функцію бібліотеки.
Розробити динамічно завантажувану бібліотеку, котра містить функцію, що виводить у вікні повідомлення поточний місяць (Січень,…). Розробити другу програму, котра використовує цю функцію.
Розробити динамічно завантажувану бібліотеку, котра використовує функцію, що виводить отриманий параметр у вікно повідомлення. Розробити другу програму, котра передає поточні координати курсору параметром у функцію бібліотеки.
Розробити динамічно завантажувану бібліотеку, котра використовує функцію, що виводить отриманий параметр у вікно повідомлення. Розробити другу програму, котра передає поточний місяць (Січень,…) параметром у функцію бібліотеки.
Розробити динамічно завантажувану бібліотеку, котра використовує функцію, що виводить отриманий параметр у вікно консолі. Розробити другу консольну програму, що передає поточний місяць (Січень,..) параметром у функцію бібліотеки.
Розробити динамічно завантажувану бібліотеку, котра використовує функцію, що виводить отриманий параметр у вікно повідомлення. Розробити другу програму, що передає поточне ім’я комп’ютера параметром у функцію бібліотеки.
Розробити динамічно завантажувану бібліотеку, котра містить функцію, що виводить у вікні повідомлення поточну директорію розміщення ОС Windows.
Розробити динамічно завантажувану бібліотеку, котра використовує функцію, що виводить отриманий параметр у вікно консолі. Розробити другу консольну програму, що передає поточне ім’я комп’ютера параметром у функцію бібліотеки.
Розробити динамічно завантажувану бібліотеку, котра використовує функцію, що виводить отриманий параметр у вікно повідомлення. Розробити другу програму, що передає поточні координати курсору параметром у функцію бібліотеки
Розробити динамічно завантажувану бібліотеку, котра використовує функцію, що виводить отриманий параметр у вікно консолі. Розробити другу консольну програму, що передає поточний час (00:00:00) параметром у функцію бібліотеки.
Розробити динамічно завантажувану бібліотеку, котра використовує функцію, що виводить отриманий параметр у вікно повідомлення. Розробити другу програму, котра передає поточну директорію розміщення системних файлів ОС Windows параметром у функцію бібліотеки.
Розробити динамічно завантажувану бібліотеку, котра використовує функцію, що виводить отриманий параметр у вікно консолі. Розробити другу консольну програму, що передає Поточний місяць (Січень,..) параметром у функцію бібліотеки.
Розробити динамічно завантажувану бібліотеку, котра використовує функцію, що виводить отриманий параметр у вікно повідомлення Розробити другу програму, що передає поточну дату (00.00.00) параметром у функцію бібліотеки.
Розробити динамічно завантажувану бібліотеку, котра використовує функцію, що виводить отриманий параметр у вікно консолі. Розробити другу консольну програму, що передає поточну дату (00.00.00) параметром у функцію бібліотеки.
Розробити динамічно завантажувану бібліотеку, котра використовує функцію, що виводить отриманий параметр у вікно консолі. Розробити другу консольну програму, що передає поточну директорію розміщення ОС Windows параметром у функцію бібліотеки.
Розробити динамічно завантажувану бібліотеку, котра використовує функцію, що виводить отриманий параметр у вікно повідомлення. Розробити другу програму, що передає поточний день тижня (Понеділок,…) параметром у функцію бібліотеки.
Розробити динамічно завантажувану бібліотеку, котра використовує функцію, що виводить отриманий параметр у вікно повідомлення. Розробити другу програму, що передає поточну директорію розміщення системних файлів ОС Windows.
Розробити динамічно завантажувану бібліотеку, котра використовує функцію, що виводить отриманий параметр у вікно консолі. Розробити другу консольну програму, що передає поточне ім’я користувача параметром у функцію бібліотеки.
Розробити динамічно завантажувану бібліотеку, котра використовує функцію, що виводить отриманий параметр у вікно консолі. Розробити другу консольну програму, що передає поточну дату (00.00.00) параметром у функцію бібліотеки.
Розробити динамічно завантажувану бібліотеку, котра використовує функцію, що виводить отриманий параметр у вікно консолі. Розробити другу консольну програму, що передає поточну директорію розміщення ОС Windows параметром у функцію бібліотеки.
Розробити динамічно завантажувану бібліотеку, котра використовує функцію, що виводить отриманий параметр у вікно консолі. Розробити другу консольну програму, що передає поточне ім’я користувача параметром у функцію бібліотеки.