By Randall Hyde
I talked about this in Podcast #18, at about 39 minutes in. As I mentioned in that episode, I think this is an excellent book for both the novice and experienced hacker. Academic curricula used to cover the topics covered by it, but not so much these days. Even if you have a CS degree, this book might still be a valuable introduction to the concept of machine organization. I particularly enjoyed the survey of logical cricuits and memory heirarchy. If you’ve read and enjoyed Joel Spolsky’s essay, The Law of Leaky Abstractions, then you will enjoy this book and the knowledge it contains for helping you to get to just about the lowest level with an appreciation for how all the layers of abstraction are built on top of it.
Randall’s other books are on Assembly programming, so his code examples are in C and HLA, but if you’ve worked with any C-like language, you should not have any problem following along. I did not find any obvious errors or problems with the code samples. The writing style, overall, is very enjoyable. Even when dealing with drudgery topics, like designing a simpified machine language to illustrate how they work in generally, it never really bogs down.