Most Helpful Customer Reviews
16 of 17 people found the following review helpful:
5.0 out of 5 stars
Great Introductory Book on IA-32 Assembly!, February 25, 2010
This review is from: Assembly Language Step-by-Step: Programming with Linux (Paperback)
This is a very good introductory book on IA-32 Assembly programming on Linux (well, Ubuntu distro specifically but adaptable to other distros too). Uses NASM and a stack of tools that are likely available for all distros (but again definitely if you have an Ubuntu variant).
If you're really ready to take your time and are shooting for a well-grounded point of departure than this book is for you. If you've already mastered things like IA-32 architecture, number theory, adding in hex, fundamentals of assembly, registers, eflags, etc., than this might move too slow for you. That being said, you may just find some interesting nuggets in this book.
One thing I really liked about this book is he moves at a very realistic gradient for the beginning assembly newbie and also provides a very nice setup for experimentation (that is, he suggests a certain toolset which, once setup, will allow you to step through your program and inspect the registers instruction by instruction). I found this quite helpful in making abstract concepts more concrete and to confirm my understanding. Also, very nice use of diagrams not usually found in a topic as terse as assembly language!
Some have complained on earlier editions that they don't like his writing style and that he takes too long to get you to the meat of assembly. I wasn't too crazy about the Martians FooBitidy whatever analogy that he uses, and he definitely can take a bit long to get to the point from time to time. However, this can come in useful for complicated sections as he really takes his time to lay it all out in such a way to where you'd have to be asleep not to "get it". As a programmer who has learned to do a lot of reading on the side, I don't much care if 100 pages could have been stripped down - I'm more concerned with whether I can actually learn from a book. If you require K&R style writing you my not like this. However, my suggestion - deal with a bit of annoying fluff and you'll be thankful in the end. I just don't see another resource that gets you this kind of grounding IMO.
You definitely should be ready to take your time with this one. For example, he will ask you to put down the book and learn to add up to 0Fh + 0Fx, and expects you to commit this to memory. I made flash cards and put the book down for a few days until I had that down pat (this only happens once in the book though) - so yes, there's some commitment involved on the reader's part. But it won't dump you on the side of the road half way in so you'll be happy you made the effort. Note that he many times will present a code example with a few new concepts and THEN explain those concepts shortly thereafter. He seems to like to show some things in context and this requires some forward references - nothing that leaves you too miffed though.
Overall, wish I had this book earlier in my career! Well down My Duntemann!
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
14 of 16 people found the following review helpful:
5.0 out of 5 stars
Do you wanna hack, or do you just want to play around?, February 19, 2010
This review is from: Assembly Language Step-by-Step: Programming with Linux (Paperback)
Author Arthur Clarke once wrote: "Any sufficiently advanced technology is indistinguishable from magic."
Computers are a sufficiently advanced technology. To most, their inner workings are unfathomable. The percentage of people who seem to know how to get the computer to do useful work are known as "gurus", "wizards", and "hackers." With all of the rapid change in the technology field, how is one to keep up?
Jeff Duntemann is like the magician who takes you behind the scenes of an illusion, and describes how things really work. He describes binary and hex mathematical systems, memory addressing, the tools used in creating programs, how programs interact with the hardware and OS, and much more.
Programming in assembly is a lost art. But it is fundamental to doing any computation in a mechanical fashion. Any higher level language must ultimately be translated or compiled into instructions a machine can understand. A programmer who does not have at least some familiarity with assembly will have difficulty debugging programs, writing efficient code, and understanding just what exactly a compiler or interpreter is doing to their code at a fundamental level.
But those who persevere with this book will understand what is going on under the hood.
Logic and math never go out of fashion. Duntemann's stated goal was to show you how computers work, and he succeeded. If you are interested in understanding, and not just some fashionable language of the month, working through this book will be a worthwhile investment of time and money.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
26 of 32 people found the following review helpful:
5.0 out of 5 stars
Where the Cool Kids Program, December 7, 2009
This review is from: Assembly Language Step-by-Step: Programming with Linux (Paperback)
A long time ago, in a basement far far away, I was sitting in front of a long-suffering television set, banging away on a Commodore 64, trying to dive beyond BASIC programming to where the cool kids played, down below the user interface, down in the guts of the machine itself. Stripped of the training wheels, you could write programs on that ancient machine that would fly. The cool kids wrote programs in assembly language. I tried. But I never got there. By the time I hit college, they didn't teach it anymore, and gradually, I moved past it to other programming, and ultimately to more satisfying careers doing other things.
But I never forgot.
Given that background, I didn't have high hopes for Assembly Language Step by Step. I know Jeff. I've read and enjoyed his science fiction, and he's blurbed mine, and to disclaim a moment, I know him well enough that he wouldn't let me pay for my copy of this new, near total rewrite of his classic text on the matter. I knew if anyone could explain assembly to me, it would be him, but I still expected to hit the point where my eyes glazed over and I didn't care anymore.
Instead, by five chapters into the book, I had refreshed my knowledge of binary and hexadecimal math. I'd looked into computer architecture to a depth I never reached before, and begun to understand, really understand the true center of assembly programming, the addressing of memory. And it's not like it was in the days when I tried to learn assembly before. Modern operating systems treat memory differently, and it's this new, more complex memory mapping that I understand now. Even after 30 years in and around the computing industry, this book taught me things I didn't know about what computing is, when all the familiar abstractions are stripped away and the bare code is exposed.
I can't wait to go further.
Thirty years later, that geeky kid in the basement who didn't get it, finally gets it.
If you want to get it, if you want to program where the cool kids program, if you want to understand how that machine on your desk really works, you want, you need, you must have this book. Buy this book. You won't regret it.
Highly recommended.
Five stars
-JRS
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
|