Содержание
Введение
Исследование WinAPI функций
Заключение
Библиографический список
Приложения
Целью данного курсового проекта является углубление и закрепление знаний, полученных по дисциплине "Системное программное обеспечение", формирование опыта создания программ с использованием программного продукта Turbo Assembler.
Главным же преимуществом языка ассемблера, в отличие от языков типа Pascal или C, является то, что искусный программист, как правило, способен написать более эффективную программу на ассемблере, чем те, что генерируются трансляторами с языков программирования высокого уровня. Т.е. для программ на ассемблере характерно использование меньшего количества команд и обращений в память, что позволяет увеличить скорость и уменьшить размер программы.
Однако, в силу своей машинной ориентации ("низкого" уровня) человеку по сравнению с языками программирования высокого уровня сложнее читать и понимать программу, она состоит из слишком "мелких" элементов - машинных команд, соответственно усложняются программирование и отладка, растет трудоемкость, велика вероятность внесения ошибок. В значительной степени возрастает сложность совместной разработки.
Функция LoadIcon
Загpужает поименованный pесуpс пиктогpаммы.
В случае успешного завеpшения - идентификатоp пиктогpаммы; 0 - в пpотивном случае.
Функция LoadCursor
Загpужает поименованный pесуpс куpсоpа.
В случае успешного завеpшения - идентификатоp куpсоpа; 0 - если куpсоp не найден; не опpеделено, если pесуpс не является pесуpсом куpсоpа.
Функция RegisterClassEx
Регистpиpует класс окна, атpибуты котоpого опpеделены паpаметpом WndClassEx, для последующего использования. Класс окна может pегистpиpоваться только один pаз.
Функция ShowWindow
Отобpажает или пpячет окно обpазом, указанным паpаметpом CmdShow.
Функция GetMessage
Считывает сообщение, в pамках диапазона фильтpации, из очеpеди сообщений пpикладной задачи. Оставляет упpавление дpугим пpикладным задачам, если сообщений нет или если следующим сообщением является wm_Paint или wm_Timer.
Функция DefWindowProc
Обеспечивает стандаpтную обpаботку сообщений для сообщений, которые явно не обpабатываются пpикладной задачей.
Возвpащаемое значение: результат обpаботки сообщения.
В ходе выполнения данной курсовой работы были получены практические навыки по программированию в Win32 API. Была реализована программа на низкоуровневом языке Ассемблер в EXE-формате с использованием программного продукта Turbo Assembler, удовлетворяющая требованиям задания: данная программа осуществляет вывод сообщения от клавиатуры в свое окно.
1. Методические указания к лабораторному практикуму /В.П. Кулюкин. Екатеринбург: изд. ИПК УГТУ, 2004. - 40с.
2. Лабораторный практикум по дисциплине "Системное программное обеспечение" / Уфимск. гос. авиац. техн. ун-т. Сост.: О.Д. Лянцев. - Уфа, 2008. - 57 с.
3. Калашников О.А. Ассемблер? Это просто! Учимся программировать. СПб.: БХВ-Петербург, 2006. - 384 с.: ил.
4. Абель П. Ассемблер. Язык и программирование для IBM PC / Пер. с англ. - К.: Век+, М.: ЭНТРОП, 2005. - 736 с.
Приложение А - Исходный текст программы
.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 <? >
wc WNDCLASS <? >
pnt PAINTSTRUCT <? >
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
mov eax, [hInst]
mov [wc. hInstance],eax
push IDI_APPLICATION
push 0
call LoadIconA
mov [wc. hIcon],eax
push IDC_CROSS
push 0
call LoadCursorA
mov [wc. hCursor],eax
mov [wc. hbrBackground],0
mov dword ptr [wc. lpszMenuName],0
mov dword ptr [wc. lpszClassName],offset ClassName
push offset wc
call RegisterClassA
push 0
push [hInst]
push 0
push 0
push 400
push 400
push 100
push 100
push WS_OVERLAPPEDWINDOW
push of
Одними из наиболее популярных услуг на рынке IT-технологий являются создание и продвижение лендингов. Они способны положительно влиять на деятельность любого бизнес-проекта в интернете. Судя по многочисленным отзывам, заказавшие создание лендингов люди ни разу не пожалели о потраченных деньгах. Они вложили в будущее, которое неразрывно связано с интернетом. Всё больше и больше предпринимателей обращаются к услугам разных агентств, веб-студий, чтобы заказать создание лендинга у профессионалов.