diff options
Diffstat (limited to 'c32.mac')
-rw-r--r-- | c32.mac | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/c32.mac b/c32.mac new file mode 100644 index 00000000..b187b470 --- /dev/null +++ b/c32.mac @@ -0,0 +1,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 |