На этом шаге мы рассмотрим упрощенный вызов процедур.
С упрощенным вызовом процедур в MASM вы уже познакомились. Это директива INVOKE. Процедура должна быть заранее определена с использованием ключевого слова PROTO. Например:
MessageBoxA PROTO :DWORD, :DWORD, :DWORD, :DWORD . . . . . invoke MessageBox, h, ADDR TheMsg, ADDR TitleW, MB_OK
Здесь h - дескриптор окна, откуда вызывается сообщение, TheMsg - строка сообщения, TitleW - заголовок окна, MB_OK - тип сообщения. ADDR в данном случае синоним OFFSET.
Оказывается, в синтаксисе TASM тоже имеется свой упрощенный вызов.
EXTERN MESSAGEBOX:PROC . . . . . call MessageBox PASCAL, h, ADDR TheMsg, ADDR TitleW, MB_OK
PASCAL - тип вызова, точнее порядок следования параметров. Можно поставить параметр C, тогда порядок будет обратным.
На следующем шаге мы рассмотрим макроповторения.