18 internautes sur 18 ont trouvé ce commentaire utile
- Publié sur Amazon.com
Initially, I hated this book. Hated it. But as I progressed through it I grudingly had to admit that I was learning. Let me state unequivocally, this IS a textbook - it's priced like one and it reads like one. It's not a self study book like the Head First, Deitel, Sams, Dummies, OReilly, et al series, but I think with a modest amount of effort one can learn using it.
- Price -
There is absolutely no justification for the pricing on this book. Non-textbooks have just as much, if not more, content/quality for 1/3 of the cost.
- Dated -
This is the 6th edition of this book. The Sixth!! The front matter states that this book was previously published as "Assembly Language for Intel-Based Computers" which itself has been around since the early 90s. There are signs that the author has made attempts to drag this book into the current millennium but it's still got more age spots than a 3 month old banana.
Plus, the "additions" only seem to highlight the fact that this is an old book. You've got supplemental info in various places: the publisher's website, the author's website, a companion website. Take this remark (pg 103):
"This program generates no screen output, but you can (and should) run it using a debugger. Please refer to tutorials on the book's Web site showing how to use the Microsoft Visual Studio debugger."
Another example, in chapter 5 he details opening/modifying the console window. I would think that anyone who has experience programming in C/Java/Python (as per the prereqs in 1.1.1) would already know what the console window is. This suggests that this is one of the many updates made to this book of the last decade or so which only adds to its fractured appearance.
The bottom line is that you can only slap so much paint on an old house. It's like describing how to run a post office using a manual that was originally written for a pony express rider. I think it's time the author wrote a brand new book from the ground up. Maybe its title could be "Assembly Programming for the 21st Century".
- Examples & Author's Link Libraries -
Whereas most programming books I've used involve a lot of "doing", i.e. you're programming each step of the way, in true textbook fashion this book does more "telling". Other books will dole out info followed by exercises several times throughout a chapter. With this book, the author data dumps on you and saves the programming exercises until the end of the chapter. Then there are the author's link libraries:
"The link libraries are available only for convenience, not to prevent students from learning how to program input-output themselves. Students are encouraged to create their own libraries."
That last part is easier said than done, especially if someone needs instruction on how to open a console window. But I don't know why the author made using his libraries integral to the majority of his examples. He's not alone in this by the way - at least he promotes using an industry recognized environment (Microsoft's Visual Studio). Another book, Art of Assembly, teaches assembly using the author's home-grown assembler & libraries. Anyway, if we're learning on MASM, why not use the libraries included in MASM? Especially for the basic stuff? Or better yet, use the debugger to follow your output.
Here's example code in 3.2.1 that doesn't appear to need Irvine's libs:
"Our first version of the AddSub program used the Irvine32.inc file, which hides a few details. Eventually you will understand everything in that file, but we're just getting started in assembly language. If you prefer full disclosure of information from the start, here is a version of AddSub that does not depend on include files."
Kind of implies that you don't need the Irvine libraries, right? But at the end of the section there's this "...DumpRegs is a procedure from the Irvine32 link library that displays registers." So this example code will absolutely not work without the Irvine library; that first statement is flat wrong.
Now that I've ripped it, here are the positives:
There are a lot of good things in here. The fundamentals in the first two chapters (numbering, hex/bin/octal conversion, 2s-complement, register structures, etc) still hold true. There are some organizational peculiarities but I attribute that to the author using a 15-20 year old book as his foundation.
The example programs (with noted exceptions) were tested with the latest version of MASM within VS 2010. And the author does seem genuinely interested in the reader learning. He has an extensive guide online with lots of links and supplemental information.
The bottom line though is that I did learn a lot with this book. I skipped any sections dealing with Irvine's libraries and used the web to fill in what was missing. It helped that I had some experience with debuggers though.
I can't say this is a terrible book. In its time, it was probably a decent book. It's obvious that Irvine knows his stuff; I think most of my complaints can be attributed to the fact that this book should have been completely rewritten years (maybe a decade) ago. If you're a student and this is required text...you'll probably be okay. However, I'd hesitate recommending it as a self-study guide due to its price, datedness, & at times poor organization.