mirror of
				https://github.com/netwide-assembler/nasm.git
				synced 2025-10-10 00:25:06 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			53 lines
		
	
	
		
			550 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			550 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| ; 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
 | |
| 
 |