Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Розробка діалогового вікна в MASM32

Реферат Розробка діалогового вікна в MASM32





рограми з файлу in out loga (x) .asm представлений на малюнку 3.


; ***************************************** **********************************; Волков; Арифметичний співпроцесор; ; Шістнадцяткова; ; Плаваюча точка (нормальна форма); ; ; ; ************************************************* ************************** .686 .model flat, stdcall option casemap: none WinMain proto: DWORD,: DWORD,: DWORD,: DWORD include masm32 include windows.inc include masm32 include user32.inc include masm32 include kernel32.inc includelib masm32 lib user32.lib includelib masm32 lib kernel32.lib include masm32 include masm32.inc includelib masm32 lib masm32.lib .data ClassName db SimpleWinClass , 0 AppName db 5adb , 0 MenuName db FirstMenu , 0 ButtonClassName db button , 0 ButtonText db laquo ; Calculate logA (X) , 0 StaticClassName db static , 0 StaticText db Enter number X raquo ;, 0 StaticText1 db Enter number A raquo ;, 0 EditClassName db edit , 0 TestString db Wow! I'm in an edit box now , 0 hwndStatic1 dd 0 hwndStatic2 dd 0 dexpx dd 0 dexpmx dd 0 zero dq 0.0 integer dd 0.0 fractional dd 0.0 fractional_buffer dd 0.0 hex dd 16.0 counter dd 1 divider dd 1 hexInt dd 16 buffer_out db 512 dup (0) .data? hInstance HINSTANCE? CommandLine LPSTR? hwndButton HWND? hwndEdit HWND? hwndEdit1 HWND? buffer db 512 dup (?) angle dq? angle1 dq? angle_read dq? angle_buffer dd? .const ButtonID equ 1 EditID equ 2 StaticID equ 3 IDM_HELLO equ 1 IDM_CLEAR equ 2 IDM_GETTEXT equ 3 IDM_EXIT equ 4 const_log dq 1.0 .code start: invoke GetModuleHandle, NULL mov hInstance, eax invoke GetCommandLine mov CommandLine, eax invoke WinMain, hInstance, NULL, CommandLine, SW_SHOWDEFAULT invoke ExitProcess, eax WinMain proc hInst: HINSTANCE, hPrevInst: HINSTANCE, CmdLine: LPSTR, CmdShow: DWORD LOCAL wc: WNDCLASSEX LOCAL msg: MSG LOCAL hwnd: HWND mov wc.cbSize, SIZEOF WNDCLASSEX mov wc. style, CS_HREDRAW or CS_VREDRAW mov wc.lpfnWndProc, OFFSET WndProc mov wc.cbClsExtra, NULL mov wc.cbWndExtra, NULL push hInst pop wc.hInstance mov wc.hbrBackground, COLOR_BTNFACE + 1 mov wc.lpszMenuName, OFFSET MenuName mov wc.lpszClassName, OFFSET ClassName invoke LoadIcon, NULL, IDI_APPLICATION mov wc.hIcon, eax mov wc.hIconSm, eax invoke LoadCursor, NULL, IDC_ARROW mov wc.hCursor, eax invoke RegisterClassEx, addr wc INVOKE CreateWindowEx, WS_EX_CLIENTEDGE, ADDR ClassName, ADDR AppName, WS_OVERLAPPEDWINDOW , CW_USEDEFAULT, CW_USEDEFAULT, 300,200, NULL, NULL, hInst, NULL mov hwnd, eax INVOKE ShowWindow, hwnd, SW_SHOWNORMAL INVOKE UpdateWindow, hwnd .WHILE TRUE INVOKE GetMessage, ADDR msg, NULL, 0,0 .BREAK .IF (! eax) INVOKE TranslateMessage, ADDR msg INVOKE DispatchMessage, ADDR msg .ENDW mov eax, msg.wParam ret WinMain endp WndProc proc hWnd: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM .IF uMsg == WM_DESTROY invoke PostQuitMessage, NULL.ELSEIF uMsg == WM_CREATE; static1invoke CreateWindowEx, WS_EX_CLIENTEDGE, ADDR StaticClassName, ADDR StaticText, WS_CHILD or WS_VISIBLE or WS_BORDER or ES_LEFT or ES_AUTOHSCROLL, 50,15,200,25, hWnd, StaticID, hInstance, NULL mov hwndStatic1, eax; edit1 invoke CreateWindowEx, WS_EX_CLIENTEDGE, ADDR EditClassName, NULL, WS_CHILD or WS_VISIBLE or WS_BORDER or ES_LEFT or ES_AUTOHSCROLL, 50,35,200,25, hWnd, EditID, hInstance, NULL mov hwndEdit, eax invoke SetFocus, hwndEdit; static2 invoke CreateWindowEx, WS_EX_CLIENTEDGE, ADDR StaticClassName, ADDR StaticText1, WS_CHILD or WS_VISIBLE or WS_BORDER or ES_LEFT or ES_AUTOHSCROLL, 50,70,200,25, hWnd, StaticID, hInstance, NULL mov hwndStatic1, eax; edit2 invoke CreateWindowEx, WS_EX_CLIENTEDGE, ADDR EditClassName, NULL, WS_CHILD or WS_VISIBLE or WS_BORDER or ES_LEFT or ES_AUTOHSCROLL, 50,90,200,25, hWnd, EditID, hInstance, NULL mov hwndEdit1, eax; button invoke CreateWindowEx, NULL, ADDR ButtonClassName, ADDR ButtonText, WS_CHILD or WS_VISIBLE or BS_DEFPUSHBUTTON, 75,125,140,25, hWnd, ButtonID, hInstance, NULL mov hwndButton, eax .ELSEIF uMsg == WM_COMMAND mov eax, wParam .IF lParam == 0 .IF ax == IDM_HELLO invoke SetWindowText, hwndEdit, ADDR TestString invoke SendMessage, hwndEdit, WM_KEYDOWN, VK_END, NULL .ELSEIF ax == IDM_CLEAR invoke SetWindowText, hwndEdit, NULL .ELSEIF ax == IDM_GETTEXT; get number from edit invoke GetWindowText, hwndEdit, ADDR buffer, 512; invoke StrToFloat, ADDR buffer, ADDR angle; перетворимо з ASCII в число з плаваючою точкою подвійної точності в angle lea esi, buffer call readdec fld angle_read fstp qword ptr [angle] mov ecx, 20 lea esi, buffer buffer_cliner1: mov byte ptr [esi], 0 inc esi loop buffer_cliner1invoke GetWindowText, hwndEdit1, ADDR buffer, 512; invoke StrToFloat, ADDR buffer, ADDR angle1; перетворимо з ASCII в число з плаваючою точкою подвійної точності в angle lea esi, buffer call readdec fld angle_read fstp qword ptr [angle1] finit; ініціалізація співпроцесора fld const_log fld angle FYL2X fld co...


Назад | сторінка 2 з 5 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Операції над даними в СП з плаваючою точкою
  • Реферат на тему: Виконання операцій над операндами з плаваючою точкою
  • Реферат на тему: Modern problems and prospects of development of local self-management in Uk ...
  • Реферат на тему: About problems of interaction of bodies of constitutional justice and local ...
  • Реферат на тему: Розробка фірмового стилю і створення фільму-презентації музичного колективу ...