Зміст
Введення
Дослідження WinAPI функцій
Висновок
Бібліографічний список
Програми
Введення
Метою даного курсового проекту є поглиблення і закріплення знань, отриманих з дисципліни "Системне програмне забезпечення ", формування досвіду створення програм з використанням програмного продукту Turbo Assembler.
Головною ж перевагою мови асемблера, на відміну від мов типу Pascal або C, є те, що майстерний програміст, як правило, здатний написати ефективнішу програму на асемблері, ніж ті, що генеруються трансляторами з мов програмування високого рівня. Тобто для програм на асемблері характерне використання меншої кількості команд і звернень в пам'ять, що дозволяє збільшити швидкість і зменшити розмір програми.
Однак, в силу своєї машинної орієнтації ("низького" рівня) людині у порівнянні з мовами програмування високого рівня складніше читати і розуміти програму, вона складається з дуже "дрібних" елементів - машинних команд, відповідно ускладнюються програмування і налагодження, зростає трудомісткість, велика ймовірність внесення помилок. В значній мірі зростає складність спільної розробки.
Дослідження WinAPI функцій
Функція LoadIcon
завантажувати поіменований pесуpсов піктогpамми.
У разі успішного завершення - идентификатоp піктогpамми; 0 - в іншому разі,.
Функція LoadCursor
завантажувати поіменований pесуpсов куpсоpа.
У разі успішного завершення - идентификатоp куpсоpа; 0 - якщо куpсоp не знайдене, не опpеделено, якщо pесуpсов не є pесуpсов куpсоpа.
Функція RegisterClassEx
Регістpіpует клас вікна, атрибути котоpого опpеделена параметром WndClassEx, для подальшого використання. Клас вікна може pегістpіpоваться тільки один pаз. p> Функція ShowWindow
Отобpажает або пpячется вікно обpазом, зазначеним параметром CmdShow.
Функція GetMessage
Зчитує повідомлення, в pамках діапазону фильтpация, з очеpеди повідомлень прикладні завдання. Залишає упpавление дpугим прикладні завданням, якщо повідомлень немає або якщо наступним сполученням є wm_Paint або wm_Timer.
Функція DefWindowProc
Забезпечує стандаpтной обpаботку повідомлень для повідомлень, які явно не оброблятися прикладні завданням.
возвpащаемся значення: результат обpаботки повідомлення.
Висновок
У ході виконання даної курсової роботи були отримані практичні навички з програмування в Win32 API. Була реалізована програма на низкоуровневом мові Асемблер в EXE-форматі з використанням програмного продукту Turbo Assembler, яка задовольняє вимогам завдання: дана програма здійснює виведення повідомлення від клавіатури в своє вікно.
Бібліографічний список
1. Методичні вказівки до лабораторного практикуму/В.П. Кулюкін. Єкатеринбург: вид. ІПК УГТУ, 2004. - 40с. p> 2. Лабораторний практикум з дисципліни "Системне програмне забезпечення "/ Уфимские. держ. авіац. техн. ун-т. Упоряд.: О.Д. Лянцев. - Уфа, 2008. - 57 с. p> 3. Калашников О.А. Асемблер? Це просто! Вчимося програмувати. СПб.: БХВ-Петербург, 2006. - 384 с.: Іл. p> 4. Абель П. Асемблер. Мова та програмування для IBM PC/Пер. з англ. - К.: Століття +, М.: ентропія, 2005. - 736 с. b>
Програми
Додаток А - Вихідний текст програми
.586
. model flat, stdcall
extern GetModuleHandleA: near
extern LoadIconA: near
extern LoadCursorA: near
extern RegisterClassA: near
extern CreateWindowExA: near
extern GetMessageA: near
extern ShowWindow: near
extern UpdateWindow: near
extern TranslateMessage: near
extern DispatchMessageA: near
extern ExitProcess: near
extern DefWindowProcA: near
extern PostQuitMessage: near
extern BeginPaint: near
extern EndPaint: near
extern TextOutA: near
extern SetBkColor: near
extern InvalidateRect: near
includelib user32. lib
includelib kernel32. lib
includelib gdi32. lib
include windows. inc
style equ CS_HREDRAW + CS_VREDRAW + CS_GLOBALCLASS
_Data segment
hWnd dd 0
msg MSG > p> wc WNDCLASS > p> pnt PAINTSTRUCT > p> hInst dd 0
TitleName db 'Програма 1', 0
ClassName db 'Class32', 0
char WPARAM 20h
clear db '', 0
hdc dd 0
_Data ends
_Code segment
Start:
push 0
call GetModuleHandleA
mov [hInst], eax
mov [wc. style], style
mov [wc. lpfnWndProc], offset WndProc
mov [wc. cbClsExtra], 0
mov [wc. cbWndExtra], 0