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