summaryrefslogtreecommitdiff
path: root/test/objexe.asm
diff options
context:
space:
mode:
Diffstat (limited to 'test/objexe.asm')
-rw-r--r--test/objexe.asm30
1 files changed, 30 insertions, 0 deletions
diff --git a/test/objexe.asm b/test/objexe.asm
new file mode 100644
index 00000000..9959f40f
--- /dev/null
+++ b/test/objexe.asm
@@ -0,0 +1,30 @@
+; 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: