Use visual studio 2008 with MASM to learn assembly on x86 win32. VS2008 is a professional ide that has all the standard features of a great ide (code completion, resource editor, debugging, registers view, etc.) It's great to learn with. If you don't have the money to pay for the full professional version, you can still use the free visual C++ express version I believe.
VS2008 comes with the latest and greatest version of MASM, and the build process is one click of a button (it links new .asm files in the project and .c files automatically).
To make an MASM project in visual studio 2008, create an empty new C++ project and add .asm files to the project. Then, right click on the project in the solution explorer, go to custom build rules, and check the masm rule.
To get syntax highlighting for .asm files in vs2008, you can refer to here.
Caution: Do not use masm32:
MASM32 (from http://www.masm32.com/)
does not have anything to do with
Microsoft or MASM as such. It is a
package mostly made by an Australian
known as Steve Hutchesson (aka hutch).
This package contains lots of headers
and example code and it uses the
Microsoft ml/link binaries version 6.x
from 1998 or so. It is absolutely
useless for any modern x86 32-bit
Windows assembly programming. Never
make the mistake of mixing up MASM and
MASM32. I see a lot of people making
this mistake. I have even seen people
give up on MASM because they thought
that MASM32 was it. It is really
sickening. As for the actual package
itself, the example code may be useful
for new ASM programmers but you should
stay away from the MASM32 "library"
and the outdated headers which give
you parsing errors in new versions of
MASM.
(from here)
EDIT: Here's a visual studio 2008 MASM project that prints "hello, world"