diff options
Diffstat (limited to 'misc/c32.mac')
-rw-r--r-- | misc/c32.mac | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/misc/c32.mac b/misc/c32.mac index a59acfde..f0c116ba 100644 --- a/misc/c32.mac +++ b/misc/c32.mac @@ -1,26 +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 - equ %$arg + +%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 + |