Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра ЕОМ
ЗВІТ
до лабораторної роботи № 5
з дисципліни
" Системне програмування"
Тема: ОСОБЛИВОСТІ ПРОГРАМУВАННЯ З ВИКОРИСТАННЯМ ФУНКЦІЙ АРІ.
Мета: Ознайомитись з можливостями програмування на Асемблері під Windows та засвоїти навики використання функцій АРІ.
ЗАВДАННЯ
Набрати подану нижче програму для визначення імені комп'ютера (яке задається системним адміністратором при установці операційної системи), зберегти її у файлі з розширенням ".ASM ".
Відкомпілювати за допомогою MASM32 набрану програму та запустити одержаний exe-файл на виконання. Записати ім'я комп'ютера, яке отримала програма.
Розглянути текст програми, вивчити загальну структуру програми із застосуванням функцій Win32 API.
Замінити виклик функції API GetComputerNameA на виклик однієї з функцій (згідно варіанту), змінивши відповідним чином параметри.
Створити ехе-файл модифікованої програми та продемонструвати його роботу.
Підготувати та захистити звіт. В звіті обов’язково мають бути описані параметри виклику функції.
ВАРІАНТИ ЗАВДАНЬ
29
GetSysColor
Код програми:
.586
.model flat, STDCALL
option casemap :none
include \masm32\include\windows.inc
include \masm32\macros\macros.asm
; -----------------------------------------------------------------
; include files that have MASM format prototypes for function calls
; -----------------------------------------------------------------
include \masm32\include\masm32.inc
include \masm32\include\gdi32.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
include \masm32\include\debug.inc
; ------------------------------------------------
; Library files that have definitions for function
; exports and tested reliable prebuilt code.
; ------------------------------------------------
includelib \masm32\lib\masm32.lib
includelib \masm32\lib\gdi32.lib
includelib \masm32\lib\user32.lib ;бібліотеки для функції
includelib \masm32\lib\Kernel32.lib
includelib \masm32\lib\Kernel32.dll
includelib \masm32\lib\debug.lib
.data
;оголошення змінних
hello_title db 'hello', 0
outstr db 16 dup(0)
fmt db '%x',0
.code
Start:
invoke GetSysColor,COLOR_MENU
push offset outstr ;заносимо в стек змінну, куди буде записано колір
invoke wsprintfA,addr outstr,addr fmt,eax
invoke MessageBox, NULL, addr outstr, addr hello_title, 0
invoke ExitProcess, NULL
Результат виконання:
Висновок:
Я оволодів навиками створення програм під Windows, та навчився викликати функції API.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!