Well, it seems that most people has suggested books that go towards the high level side (technical or management wise) of programming, but I believe going in the oposite direction (the low level one) can also be very productive, for instance learning assembler lets any programmer understand how things really work.
in reply to Which non-Perl books made you a better (?:Perl )?Programmer?
So I would recommend See MIPS Run and don't get bewildered but the fact that it is about MIPS processors, for learning purposes it is far better than going the x86 way!!!