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