On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru






 

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



Литература по Assembler