www.pudn.com > nasm-0.98.zip > c32.mac


; NASM macro set to make interfacing to 32-bit programs easier -*- nasm -*- 
 
 
 
%imacro proc 1			; begin a procedure definition 
 
%push proc 
 
          global %1 
 
%1:       push ebp 
 
          mov ebp,esp 
 
%assign %$arg 8 
 
%define %$procname %1 
 
%endmacro 
 
 
 
%imacro arg 0-1 4		; used with the argument name as a label 
 
%00	  equ %$arg 
 
%assign %$arg %1+%$arg 
 
%endmacro 
 
 
 
%imacro endproc 0 
 
%ifnctx proc 
 
%error Mismatched `endproc'/`proc' 
 
%else 
 
	  leave 
 
	  ret 
 
__end_%$procname:		; useful for calculating function size 
 
%pop 
 
%endif 
 
%endmacro