мушує компонувальник створити виконуваний файл з розширенням. Exe. p> Параметр stdcall визначає порядок передачі параметрів через стек справа наліво.
Директива include включати в програму файл win32.inc. p> Функції Win32 API, що використовуються в програмі повинні бути оголошені за допомогою директиви extrn для того, щоб компілятор міг згенерувати правильний код.
При створенні вікна програми за допомогою CreateMenu отримуємо дескриптор меню і використовуємо його в якості одного з параметрів функцій CreateWindowExA. Потім за допомогою функції CreatePopupMenu отримуємо дескриптор меню, що випадає і викликом AppendMenu визначаємо всі пункти наших меню. p> Результат роботи програми наведено на Рис.1.
Текст програми
p386 ; ця директива дозволяє транслятору обробляти команди
; процесора i386
jumps ; транслятор автоматично перетворює команду
; умовної
; передачі управління в комбінацію умовною і безумовною
; команд якщо умовна команда в силу обмеженості
; області своєї дії; не забезпечує передачу
; управління за потрібною адресою
model flat, STDCALL ; вибирається модель пам'яті для 32 - розрядного
; програмування і правила передачі
; параметрів функцій STDCALL, далі
; діють за умовчанням
include win32.inc ; файл опису структур і констант
L equ ; послідовності символів LARGE,
; є ім'ям операції, що оголошує
; наступний за нею операнд 32-розрядних,
; присвоюється ім'я L
IDM_QUIT equ 100
IDM_ABOUT equ 101
MF_ENABLED equ 0
MF_POPUP equ 10h
MF_OWNERDRAW equ 100h
; Функції Win32 API, що використовуються програмою
extrn BeginPaint: PROC
extrn CreateWindowExA: PROC
extrn DefWindowProcA: PROC
extrn DispatchMessageA: PROC
extrn EndPaint: PROC
extrn ExitProcess: PROC
extrn GetMessageA: PROC
extrn GetModuleHandleA: PROC
extrn LoadCursorA: PROC
extrn LoadIconA: PROC
extrn RegisterClassA: PROC
extrn PostQuitMessage: PROC
extrn ShowWindow: PROC
extrn TranslateMessage: PROC
extrn UpdateWindow: PROC
extrn CreateMenu: PROC
extrn MessageBoxA: PROC
extrn AppendMenuA: PROC
extrn DrawMenuBar: PROC
extrn CreatePopupMenu: PROC
. data ​​b>; перевизначених ім'я, означає початок сегмента
; даних
newhwnd dd 0
lppaint PAINTSTRUCT
msg MSGSTRUCT
wc WNDCLASS
hInst dd 0
fl dw 0 <...