| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- ; 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
|