Mr. Steiner's writing is very clear--opening complex topics that I previously struggled to grasp. His prose is plain and easy to digest. This is a great tutorial and reference all in one.
"The 8051/8052 Microcontroller" is broken into several sections including Architecture, Assembly Language, Hardware & Single Board Computer, Development Tools, Hardware Interface and Software Examples, and Reference & Appendixes. Each section covers the topic well with the strongest sections being Architecturee and Assembly Language. These sections provide an excellent method for "wading in" to gradually understand the concepts including special function registers (SFRs), memory--internal and external, timers, serial IO, and interrupts as well as helping raeders to understand and use assembly language in their projects.
The book is targeted toward people who have some programming experience and understand basic logical constructs and it hits its target well. As a seasoned Windows programmer, it was simply a matter of reading through the text for me to understand most of the concepts on the first reading. I was riveted because I was understanding so much of it. Craig does a great job of not assuming you have certain foundational knowledge. I found myself at certain points in the text asking the question in my mind "yes, but what about...", only to moments later realize the text is explaining exactly what I was wondering about. Very well done.
For years I have struggled to learn assembly language for the sake of gaining a better understanding of computer architecture. This is the first time that it "clicked" for me. I get it and can now write code using Assembly. Now, I will be using C for my projects for the most part because it asbtracts certain aspects of writing the code that are arduous when done in Assembly, however, understanding Assembly has really helped me to see exactly what is going on.
There is really nothing bad about this book. It is not only a good text for deepening in your understanding of the 8051/8052 architecture, but is an excellent reference to keep on your shelf when you need to recall some specific details.
That being said, I would have liked to see a section dedicated to building and/or simply using a pre-built chip programmer. This is really not a criticism because the book is really comprehensive. For me to understand at a practical level, though, it would be helpful to learn how to take the most basic elements (the MCU, crystal, capacitors, etc.) and place them on a circuit board and see them work with code that I've just downloaded to the MCU.
The section on the SBC is really good, but it feels to me like it abstracts an important part of embedded system development--assembling the parts. I want to see how things work outside of the context of a development board. Maybe Craig will add a chapter dedicated to building a basic system from parts and a programmer in the next edition.
"The 8051/8052 Microcontroller" is an excellent book to use to get started as well as a great reference. I have several other 8051 books including "Programming and Customizing 8051 Microcontroller" by Predko, "C and the 8051" by Schultz, and "Embedded C" by Pont. They all have their good points, however, Steiner's book brings things together in a way and doesn't assume much about the reader's base knowledge and gave me many "aha" moments I hadn't experienced with the others. If you want to learn the 8051/8052 microcontroller, buy this book!