МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра ЕОМ
ЗВІТ
до лабораторної роботи № 5
з дисципліни
" Системне програмування"
Львів – 2012
Тема: ОСОБЛИВОСТІ ПРОГРАМУВАННЯ З ВИКОРИСТАННЯМ ФУНКЦІЙ АРІ.
Мета: Ознайомитись з можливостями програмування на Асемблері під Windows та засвоїти навики використання функцій АРІ.
ЗАВДАННЯ
Набрати подану нижче програму для визначення імені комп'ютера (яке задається системним адміністратором при установці операційної системи), зберегти її у файлі з розширенням ".ASM ".
Відкомпілювати за допомогою MASM32 набрану програму та запустити одержаний exe-файл на виконання. Записати ім'я комп'ютера, яке отримала програма.
Розглянути текст програми, вивчити загальну структуру програми із застосуванням функцій Win32 API.
Замінити виклик функції API GetComputerNameA на виклик однієї з функцій (згідно варіанту), змінивши відповідним чином параметри.
Створити ехе-файл модифікованої програми та продемонструвати його роботу.
Підготувати та захистити звіт. В звіті обов’язково мають бути описані параметри виклику функції.
ВАРІАНТИ ЗАВДАНЬ
8
GetOEMCP
Код програми:
.586
.model flat, STDCALL
option casemap :none
invoke MessageBox, NULL, addr Hebrew_A, addr hello_title, MB_OK
next12:
cmp eax,863
jne next13
invoke MessageBox, NULL, addr MS_DOS_Canadian_French_A, addr hello_title, MB_OK
next13:
cmp eax,864
jne next14
invoke MessageBox, NULL, addr Arabic_A, addr hello_title, MB_OK
next14:
cmp eax,865
jne next15
invoke MessageBox, NULL, addr MS_DOS_Nordic_A, addr hello_title, MB_OK
next15:
cmp eax,866
jne next16
invoke MessageBox, NULL, addr MS_DOS_Russian_former_USSR_A, addr hello_title, MB_OK
next16:
cmp eax,869
jne next17
jne next21
invoke MessageBox, NULL, addr Korean_A, addr hello_title, MB_OK
next21:
cmp eax,950
jne next22
invoke MessageBox, NULL, addr Chinese_Taiwan_Hong_Kong_SAR_PRC_A, addr hello_title, MB_OK
next22:
cmp eax,1361
jne next23
invoke MessageBox, NULL, addr Korean__Johab_A, addr hello_title, MB_OK
next23:
invoke ExitProcess, NULL
end Start
Функція UINT GetOEMCP(void) повертає кодову сторінку встановлену на комп’ютері.
Для її реалізації потрібно було використати:
Kernel32.lib і Kernel32.dll
Результат виконання:
Висновок:
Я оволодів навиками створення програм під Windows, та навчився викликати функції API.