Навигация сайта

  • Главная
  • Статьи
  • Учебники
  • Программы
  • Друзья сайта

программа hello world

Это, наверное, самая простая программа.
Используются всего две функции:
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 
 

Техническая поддержка и аудит сайта.