I'm new to assembly and I want to learn the language. I downloaded the NASM compiler and I'm trying to compile (assemble?) my programs with it. I'm assuming nasm.exe is the compiler. When I try to compile, it gives me errors. The code I'm trying to compile is:

.model small
.stack
.data
message db "Hello world, I'm learning Assembly !!!", "$"

.code

main proc
mov ax,seg message
mov ds,ax

mov ah,09
lea dx,message
int 21h

mov ax,4c00h
int 21h
main endp
end main

Also, I eventually want to write my own Disk Operating System, would ASM be the way to go if I want to do this?

Thanks, any help is appreciated.

It looks as though you code is written for MASM Microsofts assembler.

Absolutely, you can write an operating system using entriely assembly. Linux however has 95% of it written in "C", and even though I've never had the oportunity to look at other operating systems sources like Linux I would imagine they are too.

As a matter of fact at http://www.menuetos.org/ is a complete operating system written using flat asm that you may be interested in.