use16
bits 16 ;zeby byl 16 bitowy
segment data
hello: db 'hello, world','$'
segment _stack stack
resb 64
stacktop:
segment code
..start:
mov ax,data
mov ds,ax
mov ax,_stack
mov ss,ax
mov sp,stacktop
mov dx,hello
mov ax,0900h
int 21h
mov ax,4c00h
int 21h
Mam oto taki kod napisany w skłądni intelowskiej pod NASM.
Chce żeby to był program 16 bitowy po asemblacji i zlinkowaniu.
Jak widać program ma wyświetlać napis 'hello, world', ale tego nie robi tylko wywala mi jakieś smieci.
Cały czas pisałem pod TASM i nie miałem żadnego problemu. A teraz chciałem popisać
troche w NASM i napotkałem jakies dziwne kłopoty.
Jeszcze raz podkreslam chcę żeby program był 16bitowy pod np. MS-Dosa.
Dlatego skompilowałem go takim polecieniem:
nasm -f obj a.asm -o a.exe
Prosze o pomoc bo siedze juz od ponad 1 godziny i kompiluje na 100 róznych sposobów, a program jest prosty jak konstrukcja cepa.