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