; NASM макросы для объявления задач

%macro ZADACHA 1     ; начало объявления задачи
%push ZADACHA
global %1
%1:     push ebp
        mov  ebp,esp
%assign %$priem 8
%define %$pervpriem 8
%define %$procname %1
%endmacro

%macro priem 0-1 4   ; приемники перечисляются в обратном порядке
%00     equ %$priem
%assign %$priem %1 + %$priem
%endmacro

%imacro KON 0-1      ; конец объявления задачи
%ifnctx ZADACHA
%error `KON' без `ZADACHA'
%else
        pop ebp
        ret %$priem - %$pervpriem
%pop
%endif
%endmacro

