Mercurial > repo
view nasmbuild/nasm-2.13rc9/misc/c16.mac @ 10554:587a0a262d22
<moonythedwarf> ` cd nasmbuild; tar -xf nasm.tar.gz
author | HackBot |
---|---|
date | Thu, 30 Mar 2017 20:58:41 +0000 |
parents | |
children |
line wrap: on
line source
; NASM macro set to make interfacing to 16-bit programs easier -*- nasm -*- %imacro proc 1 ; begin a procedure definition %push proc global %1 %1: push bp mov bp,sp %ifdef FARCODE PASCAL ; arguments may start at bp+4 or bp+6 %assign %$arg 6 %define %$firstarg 6 %else %assign %$arg 4 %define %$firstarg 4 %endif %define %$procname %1 %endmacro %imacro arg 0-1 2 ; used with the argument name as a label %00 equ %$arg ; we could possibly be adding some ; debug information at this point...? %assign %$arg %1+%$arg %endmacro %imacro endproc 0 %ifnctx proc %error Mismatched `endproc'/`proc' %else mov sp,bp pop bp %ifdef PASCAL retf %$arg - %$firstarg %elifdef FARCODE retf %else retn %endif __end_%$procname: ; useful for calculating function size %pop %endif %endmacro