Well, looks like you've got 16-bit code there, so "nasm -f obj myprog.asm". Then you'll need to link the resulting "myprog.obj", using a 16-bit linker, against a 16-bit C library. What C tools are you using? Do you really want 16-bit code, in this day and age?
Good info on interfacing Nasm with (32-bit) C here:
http://www.drpaulcarter.com/pcasm/Best,
Frank
P.S. Here's my Linux version:
; nasm -f elf hwso.asm
; ld -I/lib/ld-linux.so.2 -lc -s -o hwso hwso.o
global _start
extern printf
section .text
_start:
fld qword [anumber]
sub esp, 8
fstp qword [esp]
push msg
push fmt
call printf
add esp, 16
mov eax, 1
xor ebx, ebx
int 80h
;section .data
fmt db "%s%f", 10, 0
msg db "The answer is: ", 0
anumber dq 42.0