summaryrefslogtreecommitdiff
path: root/c32.mac
blob: 6abad99516e482c989d1d5b085e4bda511ee23f0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
; 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