My first immediate complaint. Why FASM? yasm is basically the de factor assembler these days (really nasm is still really popular, but it's practically dead). The only things I see fasm used more than gas or yasm for are for wierd niche projects like hobby operating system kernels
I highly recommend that any "hacker" have a moderate familiarity with at least 2 assembly languages or similar instruction sets. Not necessarily enough to be an assembly programmer, but enough to understand what kind of operations happen at that level and how various implementations differ. I've found such knowledge to be very helpful at times when working in C/C++, JVM and ActionScript projects.
I really feel like putting up Dosbox, buying a copy of "Advanced MS/DOS", using the Turbo TASM tool and working through that is better training. I think it took me basically a month of evenings to cover that book.<p>The thing is - when you do that, you'll pretty much be able to form a model for any API you ever see. As a buddy used to say, "It's all ioctl()".<p><i>Then</i> go the larger-word instruction sets.
Coverage of a Linux environment, and supporting the use of ELF binaries, as an alternative to Windows, would be cool. Not necessarily instead of, but included as an option for the student.