Customer Reviews


30 Reviews
5 star:
 (17)
4 star:
 (7)
3 star:
 (2)
2 star:
 (1)
1 star:
 (3)
 
 
 
 
 
Average Customer Review
Share your thoughts with other customers
Create your own review
 
 

The most helpful favorable review
The most helpful critical review


29 of 31 people found the following review helpful
5.0 out of 5 stars Great Introductory Book on IA-32 Assembly!
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...
Published on February 25, 2010 by Robin Levin

versus
12 of 17 people found the following review helpful
3.0 out of 5 stars Tediously lays down foundations, alot of 'fluff' but still good.
This book truly is assembly step by step, not just assembly tho, its caters to people who have never used a computer before in their life. As an average programmer I'm feeling abit cheated by this book. For example, The author patronizes you by walking through the user interface/menu options in the Kate Editor and various other tools.

The book in my opinion...
Published on March 13, 2011 by Jar


‹ Previous | 1 2 3 | Next ›
Most Helpful First | Newest First

29 of 31 people found the following review helpful
5.0 out of 5 stars Great Introductory Book on IA-32 Assembly!, February 25, 2010
Verified Purchase(What's this?)
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


17 of 19 people found the following review helpful
5.0 out of 5 stars Fantastic introduction to assembly language, August 25, 2010
By 
Verified Purchase(What's this?)
This review is from: Assembly Language Step-by-Step: Programming with Linux (Paperback)
The author is a very experienced assembly language programmer, and he covers topics in a very organized way so that the reader can fully understand at each step of the way. This is a bit boring for programmers who are familiar with assembly language, even those vastly different from Intel's, but those readers can skip the first three chapters and skim parts of the others.

The author does a fantastic job of focusing on the most important information needed for assembly language programming. He does not present a comprehensive explanation of every instruction, but instead explains each type of instruction and the most used instructions. He covers the use of tools including debuggers and make, and explains how to interface with C programs and how to make Linux kernel calls. After reading each chapter, I was able to use references available on the Internet to find any information that wasn't in the book, such as a comprehensive list of kernel calls and Intel assembly language instructions.

The instructions given in the book for setting up the tools are for Ubuntu, but yum works well on Fedora:
yum install unzip bless nasm make gcc kdbg insight kdesdk kdebase

One problem with the book is that it sticks to 32-bit assembly language and doesn't explain what differs on 64-bit systems. I found that I had to change nasm's output format from elf to elf64 (-f elf64) and use the 64-bit registers (rax, rbx, rbp, etc.) The book describes pushad and popad to push and pop all general purpose registers, but these do not work with the 64-bit registers. Indicating that a memory reference is 64 bits is done with qword. I couldn't output command line arguments as set up by the Linux runtime without copying them into a different buffer.

On 64-bit Linux, the glibc calling conventions are completely different than those described in the book. I was able to figure out how to call printf by writing a C program and disassembling it with objdump, which I found more readable then gcc's assembly listing. The glibc calling convention for 64-bit is that the arguments are passed in registers, with the first argument in rdi, second in rsi, third in rdx, and fourth in rcx; also the rax register must be set to zero for variable-argument functions. The registers rbx, rbp, rsp, r12, r13, 14, and 15 must be saved by the called function.

The fact that I was able to program on a 64-bit system even though the book doesn't cover 64-bit systems is a testament to how well the author covers the basics. Instead of trying to provide every little piece of information an assembly language programmer may need, he provides clear explanations of the basics so that the reader can understand enough to look up any additional information needed. I recommend this book over all others for programmers who want to learn Intel assembly language.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


40 of 50 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


10 of 12 people found the following review helpful
5.0 out of 5 stars Excellent book--new problems noted, August 8, 2010
By 
Verified Purchase(What's this?)
This review is from: Assembly Language Step-by-Step: Programming with Linux (Paperback)
This book by one of the true gurus of computer programming is long overdue, but well worth the wait. I'm using it to refresh my dormant assembly language skills. I highly recommend this book for both beginners and rusty old-timers like me.

Please note that Jeff's book teaches assembly language programming for the IA-32 (Intel/AMD) CPUs on a Linux Ubuntu platform, NOT Windows. He uses development tools that are free in the Linux world, specifically: the KDE desktop, the Kate programming editor, the Nasm assembler, the Linux built-in linker, and the Insight debugger. Users of other Linux kernels should have little trouble following his instructions on their systems. In particular, everything works under the Gnome desktop.

Unlike many other books on assembly language, Jeff doesn't start by plunging the reader into a discussion of arcane assembly opcodes. He first draws on his decades-long experience to give a thorough introduction to the history and evolution of the architecture of the Intel family of processors, as well as a good presentation of number bases. Almost the first third of the book is devoted to such valuable prefatory background. Having taught assembly language courses at the college level, I truly commend this approach.

WARNING: There are two main problems to be aware of. Jeff developed the book using a 32-bit machine and version 8.10 of Linux Ubuntu. To save space in what should properly be a review, I have posted the fixes on a website I created specifically to address these problems. See my comment to this review for directions to that resource. Meanwhile, here's brief descriptions of the problems:

First problem: If you have a 64-bit CPU and Linux kernel, you will encounter a minor problem assembling your source code if you enter the command lines he uses for Nasm (see pg. 144 of the book), which targeted a 32-bit CPU.

Second problem: Unfortunately, with the release of Ubuntu 10.4, Jeff was blind-sided by a change in that release: the Insight debugger, which is used throughout his book, was dropped from the Ubuntu 10.4 distribution. It is also no longer listed in any of the standard repositories known to Ubuntu 10.4. However, I've posted a method for installing Insight in Ubuntu 10.4 on the website I mentioned above. Of course, you can also use the Kdbg debugger, although it doesn't have some of the features of Insight that Jeff likes. He presents an introduction to Kdbg in the early parts of the book.

These problems should be non-existent if you are using an earlier release of Ubuntu and a 32-bit machine, and the Insight problem has only appeared as of the Ubuntu 10.4 release. Since fixes are now available, these problems are no reason to avoid purchasing this excellent book on assembly language programming.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


15 of 19 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


3 of 3 people found the following review helpful
4.0 out of 5 stars Good Sketch of Computer Program Architecture, September 15, 2013
Verified Purchase(What's this?)
I read this book 2 years ago to compare it with Randall Hyde's Art of Assembly Language which I had read 7 years earlier. Both books have strengths.

Art of Assembly Language is stronger in terms of structure and description of concepts. It is more high level and provides the reader with a clearer general outline of assembly language and computer program design related to CPU's. The benefit of the Art of Assembly language is that you may gain insights into how to optimize a computer program regardless of programming language.

Assembly Language Step-by-Step is much, much more detailed and is designed primarily for someone who actually intends to use assembly language. It is more of a hands-on, real-world book than the Art of Assembly language. Based on the amount of detail, you may not come away with a clear overview, but you will have knowledge about using assembly language in a very direct and concrete way. The details that are provided can give you tremendous understanding about the different ways software code can be set up to do things. It is a book that gives credibility to the old saying that there are thousands of ways to write the same code.

I used managed programming languages for 11 years straight. In the early years, I have seen these managed languages run slower in some areas compared to similar solutions in other languages not based on a managed paradigm. A knowledge of system characteristics and how managed languages transform into system representations can definitely help in producing more efficient solutions. Books like this one can be a benefit to anyone regardless of chosen language or to better inform their understanding of computers in conversation or use.

gautiertalkstechnology.wordpress.com/2013/09/12/c-versus-c-versus-c
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


7 of 9 people found the following review helpful
4.0 out of 5 stars Great book.. just skip the first couple of chapters!, January 8, 2011
Verified Purchase(What's this?)
This review is from: Assembly Language Step-by-Step: Programming with Linux (Paperback)
I had always thought learning Assembly would be a daunting task, so I had avoided it for years and even now this book sat on my shelf for months before I had to crack it open to learn how to efficiently implement an algorithm on a very constrained system. (An no, making sporadic, low-level calls in C is not the same as coding in Assembly). I was pleasantly surprised to find the text clear and well laid out, so I decided to read it cover to cover.

The early chapter had some goofy examples about Aliens talking Hex or something equally stupid, which I thought "here's another thick, wanna-be-comedy programming book, like the infamous Deitel C++ phone books full of irrelevant and over-the-top-dorky allegories = EPIC FAIL!" But thankfully, I somehow survived to the next chapter where the author's clear mastery of the topic really started to shine and the book started to read more like a K&R classic. I read the whole thing to the end in a day or two, and am amazed by how straight-forward beginner's Assembly really is!

So my sincere thanks to the author, and for the next edition, please leave the weird analogies for the Dummy's and 24-Hour programming books, and give us more of the to-the-point programming goodness. I look forward to an intermediate or advance edition!
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


4 of 5 people found the following review helpful
4.0 out of 5 stars Good book for beginner programmers!, June 6, 2010
Verified Purchase(What's this?)
This review is from: Assembly Language Step-by-Step: Programming with Linux (Paperback)
I've had this book for a few months now. It's extremely good for those just starting out with programming or for those that have dabbled in other languages but never with real x86 assembly. Thankfully this book guides you through programming in Linux which uses the protected flat memory model (explained in the book) which is VASTLY better than the old MSDOS model of programming. It will take you from inside basics, through requisite base conversions and such. It's just a beginning, where you end up is up to you!
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


12 of 17 people found the following review helpful
3.0 out of 5 stars Tediously lays down foundations, alot of 'fluff' but still good., March 13, 2011
Verified Purchase(What's this?)
This review is from: Assembly Language Step-by-Step: Programming with Linux (Paperback)
This book truly is assembly step by step, not just assembly tho, its caters to people who have never used a computer before in their life. As an average programmer I'm feeling abit cheated by this book. For example, The author patronizes you by walking through the user interface/menu options in the Kate Editor and various other tools.

The book in my opinion does not really start until Chapter 7. If you aren't aware of how memory is laid out or how to read hexadecimal read the earlier chapters on those subjects. After that the book is okay, but there is alot of writing/fluff.

If you can get past that this book will give you a great grasp on assembler. My brain gets tired from reading the author drone on rather than the actual concepts and assembly.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


2 of 2 people found the following review helpful
1.0 out of 5 stars Talks too much about himself, too much fluff, hard to find real insights in this book, best used for firewood, September 21, 2014
Verified Purchase(What's this?)
This review is from: Assembly Language Step-by-Step: Programming with Linux (Paperback)
Lots of useless fluff, talks W-A-Y too much about himself - abrutly ends one topic and starts another and picks back up in another chapter. I'm using it for firewood this winter
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


‹ Previous | 1 2 3 | Next ›
Most Helpful First | Newest First

Details

Assembly Language Step-by-Step: Programming with Linux
Assembly Language Step-by-Step: Programming with Linux by Jeff Duntemann (Paperback - October 5, 2009)
$65.00 $40.90
In Stock
Add to cart Add to wishlist
Search these reviews only
Send us feedback How can we make Amazon Customer Reviews better for you? Let us know here.