Введення в основи програмування на мові асемблер, за допомогою Win32API функцій.

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
АСУ

Інформація про роботу

Рік:
2014
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Системне програмування

Частина тексту файла

Міністерство освіти і науки України Національний університет “Львівська політехніка” Кафедра АСУ
Звіт до
лабораторної роботи 1 з курсу « Системного програмування» на тему: «Введення в основи програмування на мові асемблер, за допомогою Win32API функцій.»
Львів 2014
Мета роботи: навчитися використовувати функції Win32API при програмуванні в операційній системі Windows.
Хід роботи: Об’єднати результати функцій GetComputerName, GetCurrentDirectory, GetUserName та GetWindowsDirectory в один рядок. Формат результату, аналогічний до варіанту 1. Замінити в рядку-результаті всі букви, ANSI значення яких парне число, на символ «!». Звернути увагу, потрібно накласти таку умову, щоб код Enter (13 10), було не змінні. Записую код програми: include user32.inc include kernel32.inc includelib user32.lib includelib kernel32.lib include advapi32.inc
includelib advapi32.lib .data
sztitle db 'Лабортаорна робота 1',0
szbuf1 db 1000 dup(0)
size_buf1 dd 100
szbuf2 db 1000 dup(0)
szbuf3 db 100 dup(0)
szbuf4 db 1000 dup (0)
rez db 1000 dup (0)
szformat db 'ComputerName: %s',13, 10
db 'CurrentDirectory: %s', 13, 10
db 'UserName: %s',13, 10
db 'WindowsDirectory: %s', 0
.386 .model flat,STDCALL option casemap :none
;case sensitive include lab1.inc .code Begin:
call main
invoke ExitProcess,NULL
main proc
invoke GetComputerName, addr szbuf1, addr size_buf1
invoke GetCurrentDirectory, 255, addr szbuf2
invoke GetUserName, addr szbuf3, addr size_buf1
invoke GetWindowsDirectory, addr szbuf4, addr size_buf1
invoke wsprintf, addr rez, addr szformat, addr szbuf1, addr szbuf2, addr szbuf3, addr szbuf4
invoke MessageBox,0, addr rez,addr sztitle,MB_OK
lea edi,rez
td:
mov al, [edi]
and al, 1h
cmp al, 0
jnz l1
mov al, [edi]
cmp al, 65
jb l1
cmp al,122
ja l1
cmp al, 91
jb l2
cmp al, 96
ja l2
jmp l1
l2:
mov al, '!'
mov [edi], al
l1:
inc edi
mov al, [edi]
cmp al, 0
jnz td
invoke MessageBox,0, addr rez, addr sztitle,MB_OK
ret main endp
end Begin
Приклади виконання програми: / / Висновок: на цій лабораторній роботі я навчився використовувати функції Win32API при програмуванні в операційній системі Windows. Основний набір функцій знаходиться в бібліотеці kernel32.dll, котра складає ядро операційної системи Windows. В цій роботі я використав такі функції: GetComputerName, GetCurrentDirectory, GetUserName, GetWindowsDirectory та MessageBox. Для роботи з функцією GetUserName окремо підключив бібліотеку
advapi32.lib. Замінив в рядку-результаті всі букви, ANSI значення яких парне число, на символ «!».
Антиботан аватар за замовчуванням

01.01.1970 03:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Новини