NASM 0.98p3.2
[nasm.git] / c32.mac
blob6abad99516e482c989d1d5b085e4bda511ee23f0
1 ; NASM macro set to make interfacing to 32-bit programs easier -*- nasm -*-\r
2 \r
3 %imacro proc 1                  ; begin a procedure definition\r
4 %push proc\r
5           global %1\r
6 %1:       push ebp\r
7           mov ebp,esp\r
8 %assign %$arg 8\r
9 %define %$procname %1\r
10 %endmacro\r
12 %imacro arg 0-1 4               ; used with the argument name as a label\r
13 %00       equ %$arg\r
14 %assign %$arg %1+%$arg\r
15 %endmacro\r
17 %imacro endproc 0\r
18 %ifnctx proc\r
19 %error Mismatched `endproc'/`proc'\r
20 %else\r
21           leave\r
22           ret\r
23 __end_%$procname:               ; useful for calculating function size\r
24 %pop\r
25 %endif\r
26 %endmacro\r