The book is arranged in a logical progression of topics, and each chapter breaks the topics down in very clear and understandable ways. The material is formatted nicely for going back and referencing material. The end of chapter questions and exercises are very helpful and useful.
Writing assembly language? I give one star. But considering it is a necessary evil of a university computer science program, I accept it. The book gets 5 stars for making it tolerable. Oh - and doing math in binary and hexidecimal? I give that 5 stars! When you first see it, it looks like learning Chinese. But once you understand it, it's very logical and interesting. And then when you explain how it works to a non-techie friend, you sound like you're visiting here from outer space!
It's a nightmare to use. Got a question? Good luck. Nothing is where you'd expect. When you do find something related, chances are it doesn't cover the question you had. The review questions surround the tinniest minutia and seem like more of an after thought, often referring you to some tiny segment of text 20 pages back. It looks the part, but as a way to actually learn this material or refer back to it, it's seriously lacking.
Ironically I am supposed to be studying for this exam but decided to procrastinate and write this review. I used the 7th edition and found it concise and to the point. The language is simple to understand, and helpful diagrams help convey the concepts. My classmates (teachers included) and I enjoyed it; we felt we could do away with our professor, even though we had a fantastic professor (who unfortunately got arrested, but that's another matter). The library designed by Irvine does handhold us quite a bit, but it is at an appropriate level to help guide us on the fundamental concepts of CPU/register/memory communication. We also had a good lab instructor who could scaffold us into learning the concepts in this book as a practical component. Irvine does provide a lot of online resource support. I love Assembly, primarily due to my course being designed around this book.
It gives a good introduction/kicker to computer architecture and assembly. As a linux user, I found it very irrational to choose MASM instead of something more cross platform, had to download Tiny10 on a virtual machine. Recommended read if you're a windows user and a complete beginner to computer architecture and assembly. Is not recommended for linux/Mac users.
When I first ordered a copy of this book, I expected to see some Assembly code for Linux until I realized the whole book was written as a Windows Assembly programming language textbook :) I didn't miss anything though, many instructions are interchangeable in both system environments. So I kept reading it until the half and skimmed the rest. Kip explains almost everything you need to know to be an expert Windows Assembly programmer. Reading this clear and comprehensive text is totally recommended to Windows programmers who want code Assembly. More advanced texts of using SIMD instruction sets are also recommended after reading basic Assembly.
This one worked great for my course! covered everything I needed to know and more. Not to mention, it was more organized and easier to follow than my class.