Second Hennesy & Patterson. Read it 12 years ago, still remember it vividly; everything made more sense afterwards.
It's expensive though; you might do just as well with a used older edition.
A somewhat perverse alternative approach: get a book on how debuggers work (like "How Debuggers Work").