Новые книги

Скидки и распродажи – всего лишь самые простые и вовсе не самые эффективные методы увеличения объема продаж. В действительности арсенал стимулирования продаж огромен и разнообразен и позволяет разработать не просто промоакции, а настоящие маркетинговые шедевры. Причем некоторые из них – совершенно бесплатно. В этой книге вы найдете много идей для организации ярких промокампаний.
Без цифрового фотоаппарата довольно трудно представить современную жизнь. Практически в каждой семье уже есть это «чудо техники». В данной книге собрано множество по-настоящему полезных практических примеров использования цифровой фототехники, каждый из которых основан на оригинальной идее или задаче.

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

Программу можно взять здесь