main.gif (47332 bytes)

InterReklama
InterReklama Advertising

РЕКЛАМА

Hello, world!

RLE Banner Network

TBN 100x100
TBN.ru

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

back.gif (1087 bytes)ind.gif (1892 bytes)next.gif (1100 bytes)
Hosted by uCoz