Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Анализ программы управления диалоговыми окнами.

Читайте также:
  1. A1. Сущность и классификация организаций. Жизненный цикл организации и специфика управления на различных его этапах.
  2. C.) Анализ современной среды и деятельности человека показывает, что она может быть названа
  3. ERP имеет выходы во внешнюю среду и предназначена для решения задач комплексного управления предприятием.
  4. F) Всестороннее изучение и анализ учебно-воспитательного процесса в целях координирования целостного педагогического процесса
  5. FMEA – АНАЛИЗ (FAILURE MODE AND EFFECTS ANALYSIS).
  6. I. Историко-философский анализ понятий «виртуальность» и «виртуальная реальность» с античного периода до XX века.
  7. I. Классическая школа управления.
  8. I. Разработка программы мониторинга
  9. II. Метод анализа оперы
  10. II. Начала математического анализа

Виды работ:

- изучить программу на Ассемблере;

- провести анализ структуры программы;

- провести анализ операторов программы;

- ознакомиться с возможным использованием операторов программного кода.

Задание 1. Проанализировать программу, написанную на ассемблере и добавить комментарии к каждой строчке.

format PE GUI 4.0 entry start

include 'win32a.inc' ID_CAPTION = 101

ID_MESSAGE = 102

ID_ICONERROR = 201

ID_ICONINFORMATION = 202

ID_ICONQUESTION = 203

ID_ICONWARNING = 204

ID_TOPMOST = 301

 

section '.text' code readable executable start:

invoke GetModuleHandle,0

invoke DialogBoxParam,eax,37,HWND_DESKTOP,DialogProc,0 or eax,eax

jz exit

invoke MessageBox,HWND_DESKTOP,message,caption,[flags] exit:

invoke ExitProcess,0

 

proc DialogProc hwnddlg,msg,wparam,lparam push ebx esi edi

cmp [msg],WM_INITDIALOG je.wminitdialog

cmp [msg],WM_COMMAND je.wmcommand

cmp [msg],WM_CLOSE je.wmclose

xor eax,eax

jmp.finish

.wminitdialog:


invoke CheckRadioButton,[hwnddlg],ID_ICONERROR,ID_ICONWARNING,ID_ICONINFORMATI ON

jmp.processed

.wmcommand:

cmp [wparam],BN_CLICKED shl 16 + IDCANCEL je.wmclose

cmp [wparam],BN_CLICKED shl 16 + IDOK jne.processed

invoke GetDlgItemText,[hwnddlg],ID_CAPTION,caption,40h invoke GetDlgItemText,[hwnddlg],ID_MESSAGE,message,100h mov [flags],MB_OK

invoke IsDlgButtonChecked,[hwnddlg],ID_ICONERROR cmp eax,BST_CHECKED

jne.iconerror_ok

or [flags],MB_ICONERROR

.iconerror_ok:

invoke IsDlgButtonChecked,[hwnddlg],ID_ICONINFORMATION cmp eax,BST_CHECKED

jne.iconinformation_ok

or [flags],MB_ICONINFORMATION

.iconinformation_ok:

invoke IsDlgButtonChecked,[hwnddlg],ID_ICONQUESTION cmp eax,BST_CHECKED

jne.iconquestion_ok

or [flags],MB_ICONQUESTION

.iconquestion_ok:

invoke IsDlgButtonChecked,[hwnddlg],ID_ICONWARNING cmp eax,BST_CHECKED

jne.iconwarning_ok

or [flags],MB_ICONWARNING

.iconwarning_ok:

invoke IsDlgButtonChecked,[hwnddlg],ID_TOPMOST cmp eax,BST_CHECKED

jne.topmost_ok

or [flags],MB_TOPMOST

.topmost_ok:

invoke EndDialog,[hwnddlg],1 jmp.processed

.wmclose:

invoke EndDialog,[hwnddlg],0

.processed:

mov eax,1

.finish:

pop edi esi ebx ret

endp

section '.bss' readable writeable flags dd?

caption rb 40h


message rb 100h

section '.idata' import data readable writeable library kernel,'KERNEL32.DLL',\

user,'USER32.DLL'

 

import kernel,\ GetModuleHandle,'GetModuleHandleA',\ ExitProcess,'ExitProcess'

 

import user,\

DialogBoxParam,'DialogBoxParamA',\ CheckRadioButton,'CheckRadioButton',\ GetDlgItemText,'GetDlgItemTextA',\ IsDlgButtonChecked,'IsDlgButtonChecked',\ MessageBox,'MessageBoxA',\ EndDialog,'EndDialog'

section '.rsrc' resource data readable directory RT_DIALOG,dialogs resource dialogs,\

37,LANG_ENGLISH+SUBLANG_DEFAULT,demonstration

 

dialog demonstration,'Create message box',70,70,190,175,WS_CAPTION+WS_POPUP+WS_SYSMENU+DS_MODALFRAME

dialogitem 'STATIC','&Caption:',-1,10,10,70,8,WS_VISIBLE dialogitem

'EDIT','',ID_CAPTION,10,20,170,13,WS_VISIBLE+WS_BORDER+WS_TABSTOP

dialogitem 'STATIC','&Message:',-1,10,40,70,8,WS_VISIBLE dialogitem

'EDIT','',ID_MESSAGE,10,50,170,13,WS_VISIBLE+WS_BORDER+WS_TABSTOP+ES_AU TOHSCROLL

dialogitem 'BUTTON','&Icon',-1,10,70,80,70,WS_VISIBLE+BS_GROUPBOX

dialogitem 'BUTTON','&Error',ID_ICONERROR,20,82,60,13,WS_VISIBLE+BS_AUTORADIOBUTTON

+WS_TABSTOP+WS_GROUP

dialogitem 'BUTTON','I&nformation',ID_ICONINFORMATION,20,95,60,13,WS_VISIBLE+BS_AUTOR ADIOBUTTON

dialogitem 'BUTTON','&Question',ID_ICONQUESTION,20,108,60,13,WS_VISIBLE+BS_AUTORADIO BUTTON

dialogitem 'BUTTON','&Warning',ID_ICONWARNING,20,121,60,13,WS_VISIBLE+BS_AUTORADIOB UTTON

dialogitem 'BUTTON','&Style',-1,100,70,80,70,WS_VISIBLE+BS_GROUPBOX

dialogitem 'BUTTON','&Top most',ID_TOPMOST,110,82,60,13,WS_VISIBLE+WS_TABSTOP+BS_AUTOCHECKBOX


dialogitem 'BUTTON','OK',IDOK,85,150,45,15,WS_VISIBLE+WS_TABSTOP+BS_DEFPUSHBUTTON

dialogitem 'BUTTON','C&ancel',IDCANCEL,135,150,45,15,WS_VISIBLE+WS_TABSTOP+BS_PUSHB UTTON

enddialog

 

Задание 2. Оформить отчет.




Дата добавления: 2015-04-12; просмотров: 31 | Поможем написать вашу работу | Нарушение авторских прав

1 | 2 | 3 | 4 | <== 5 ==> | 6 | 7 | 8 | 9 | 10 |


lektsii.net - Лекции.Нет - 2014-2024 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав