summaryrefslogtreecommitdiff
path: root/misc/c32.mac
blob: a59acfde3099f5893e88a19f6e7cb033db17378f (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
	  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