Nearly the entire text of The Art of Assembly Language Programming has been posted online for the Processing Systems and Structures course at Washington University. The book begins with machine organization and then works through basic to advanced assembly language.

A while back we asked whether all programmers should learn assembly language. Most of you thought either all or most programmers should learn assembly.

From the introduction, here's a list of why someone would want to learn assembly:

  • Your major requires a course in assembly language; i.e., you're here against your will.
  • A programmer where you work quit. Most of the source code left behind was written in assembly language and you were elected to maintain it.
  • Your boss has the audacity to insist that you write your code in assembly against your strongest wishes.
  • Your programs run just a little too slow, or are a little too large and you think assembly language might help you get your project under control.
  • You want to understand how computers actually work.
  • You're interested in learning how to write efficient code.
  • You want to try something new.

Programming from the Ground Up is another assembly language book available for free online.