· 4 Min read

How to learn x86 Assembly

Post

I’m currently reviewing x86 assembly and found myself falling in love with the whole concept all over again. If you are a programmer, I highly recommend you learn x86 assembly first as it will improve the quality of your software a hundredfold. No longer will you be frustrated by HLL (high level languages) doing things behind your back during debugging as you can directly see the cause-and-effect of what you program and how it affects your computer. Sure, it is the long way around when learning how to program, (and most likely you’ll never use it at your workplace), but if you’re serious about your craft, then you simply can’t skip assembly.

Here are some FREE resources to get you started:

  1. Tutorials – Iczelion’s Assembly Tutorials (you’ll create actual Win32 programs in these tutorials!)

  2. IDE – WinASM Editor (Provides automated build process and Intellisense – nice)

  3. Compiler – Masm32 (There are 64bit variants too)

  4. Debugger – OllyDbg (The best low level debugger out there)

After you run through the tutorials above (about 30+ in all), you’ll get a good feeling that assembly programming is as easy as any other HLL languages out there (thanks to powerful macros). Plus, with constant use of the debugger, you’ll really understand how the internals of your pc functions. Of course, the benefits of small size, fast(est) execution, and the simple coolness factor of working one step above machine language is nice plus too. 🙂

[Now, as an additional challenge, I’d recommend you pick up FASM after learning MASM. It produces smaller executables, has a single source, single output philosophy, and is slightly more hardcore than MASM. There are even ports of Iczelion’s Tutorials in FASM on the messageboards there, so the transition is quite gentle.]