summaryrefslogtreecommitdiff
path: root/c32.mac
diff options
context:
space:
mode:
Diffstat (limited to 'c32.mac')
-rw-r--r--c32.mac26
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