2. Introduction

When I first took up assembly programming at the beginning of a computer (read intel) architecture class I couldn't find a hello world program that would compile as a 32 bit console application using the tools I had for windows; visual c++ and masm. Most references on the net were 16 bit code and none were with visual studio. This guide aims to fill that gap. If you find this useful please drop me an email so I can brag to my grandparents.

Assembly language is the programming language that is closest to the hardware (next to machine code, but that's not much of a "language"). It is often used in development tools like compilers, when tight controls or extra speed is necessary. It is also sometimes portrayed as arcane and inapproachable. But is a core course requirement in any respectable computer science program.

Sadly, most assembly books come with a copy of the MS assembler, MASM. This pretty much forces you into a Microsoft/intel paradigm of programming which is different from other common tools and syntaxes (NASM for example. Most assembly books also start you off nicely wrapped in a programmers framework; meaning you include and use procedures and macros before you ever know what they mean. A clean- room, from scratch approach, while difficult, is a more effective learning tool for me.

This quick start is targeted at computer students and professionals who are new to assembly programmning, but have experience in another high level language. It is a good supplement to a MASM based computer text book. A lay Windows user could probably walk through this guide with no experience what so ever. But programming background and experience with the command line, compilers, and IDE's will be helpful.