fc34, do you have a lot of experience programming?? I ask because I'm not sure that I'd recommend assembly before you understand a high level language. Also, before you even start programming, I'd try to understand some basic ideas (mainly registers and memory addressing). You may want to get familiar with binary(signed and unsigned) and hex number conversions as it will help with your understanding of what is going on with your program. You could also try writting the code out in another language you are familiar with and then convert it to assembly code on paper(before ever typing it in). Basically, understand what is going on before you even try typing it on the computer.
Anyway, here's another way to do that program.
NOTE: as with other languages, there are a million ways to accomplish most tasks in assembly, so don't get hung up with the idea that there is only one solution. After solving the problem, then you can think about code optimization.
.model small
.stack 100h
.data
message db "Hello World!", 0dh, 0ah, '$'
.code
main proc
mov ax, @data ;start up code
mov ds, ax
mov ah, 9 ;display string
mov dx, offset message
int 21h
mov ax, 4c00h ;exit code to DOS
int 21h
main endp
end main
Here are a couple of links to try if you want to continue with x86 asm
http://webster.cs.ucr.edu/Page_TechDocs/MASMDoc/
http://www.azillionmonkeys.com/qed/asm.htm
Remember, google is your friend.
also goto:
http://www.nuvisionmiami.com/books/asm/
If you follow the 'Printable Chapters' link, you will find a couple of introductory chapters of an Assembly text book in PDF form.
Hope this helps.