mirror of
https://github.com/netwide-assembler/nasm.git
synced 2024-12-21 09:19:31 +08:00
31 lines
529 B
NASM
31 lines
529 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:
|