mirror of
				https://github.com/netwide-assembler/nasm.git
				synced 2025-10-10 00:25:06 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			31 lines
		
	
	
		
			526 B
		
	
	
	
		
			NASM
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			526 B
		
	
	
	
		
			NASM
		
	
	
	
	
	
| ; Demonstration of how to write an entire .EXE format program as a .OBJ
 | |
| ; file to be linked. Tested with the VAL free linker.
 | |
| ; To build:
 | |
| ;    nasm -fobj objexe.asm
 | |
| ;    val objexe.obj,objexe.exe;
 | |
| ; To test:
 | |
| ;    objexe
 | |
| ; (should print `hello, world')
 | |
| 
 | |
| 	  segment code
 | |
| 
 | |
| ..start:  mov ax,data
 | |
| 	  mov ds,ax
 | |
| 	  mov ax,stack
 | |
| 	  mov ss,ax
 | |
| 	  mov sp,stacktop
 | |
| 
 | |
| 	  mov dx,hello
 | |
| 	  mov ah,9
 | |
| 	  int 0x21
 | |
| 
 | |
| 	  mov ax,0x4c00
 | |
| 	  int 0x21
 | |
| 
 | |
| 	  segment data
 | |
| hello:	  db 'hello, world', 13, 10, '$'
 | |
| 
 | |
| 	  segment stack stack
 | |
| 	  resb 64
 | |
| stacktop:
 |