|
Автор Westry
|
|
17.03.2008 г. |
Это, наверное, самая простая программа. Используются всего две функции: MessageBoxA из USER32.DLL и ExitProcess из KERNEL32.DLL.
Суффикс A у MessageBox означает, что функция работает с однобайтовыми ANSI строками. Для двубайтных Unicode строк - суффикс W, e.g. MessageBoxW. Сама функция MessageBox выводит сообщение в отдельном оконе, ее прототип: int MessageBox( HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType ); Параметры: hWnd - идентификатор окна, из которого вызывается MessageBox lpText - указатель на null-terminated строку, содержущая текст сообщения lpCaption - указатель на null-terminated строку, содержущая заголовок сообщения uType - вид диалогового окна Функция ExitProcess заканчивает процесс и все образованные процессы из этого процесса. VOID ExitProcess( UINT uExitCode, ); uExitCode - код выхода Параметры функции передаются по следующей схеме: AnyFunction(first_param, second_param, third_param); push [third_param] push [second_param] push [first_param] call AnyFunction или call AnyFunction, [first_param], [second_param], [third_param] Вот сама программа: .386 .model flat extrn MessageBoxA:proc extrn ExitProcess:proc .data mb_text db 'Hello, World!',0 mb_caption db 'My first program',0 .code start: push 0 push offset mb_caption push offset mb_text push 0 call MessageBoxA push 0 call ExitProcess ends end start |