I'm working my way through a computer science degree and despite
being exposed to assembly programming, courses tend to focus on
RISC architectures like MIPS. While the general ideas of
assembly programming are similar across all architectures, the
PC market is mostly x86 and I find myself lost in the adx, eax,
ebx, movl, etc. soup.  The twist (if you want to call it that)
is that I'm not a hardcore assembly nut who thinks that
"performance means using assembly" and I avoid assembly
programming when I can move up the abstraction chain without
significant consequences. However, reading things like Raymond
Chen's blog, Understanding the Liunx Kernel, and Windows
Internals makes me wish I could follow x86 better.  So with that
in mind, I'm looking for a book that explains the x86 assembly
language as well as the x86 architecture in general. A list of
all the instructions and what they do is not what I'm looking
for. I'm curious about the whole architecture from areas such as
booting to disk and other device acce