- Paperback: 648 pages
- Publisher: Wiley; 3 edition (October 5, 2009)
- Language: English
- ISBN-10: 0470497025
- ISBN-13: 978-0470497029
- Product Dimensions: 7.4 x 1.5 x 9.1 inches
- Shipping Weight: 2 pounds (View shipping rates and policies)
- Average Customer Review: 98 customer reviews
- Amazon Best Sellers Rank: #286,287 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Assembly Language Step-by-Step: Programming with Linux 3rd Edition
Use the Amazon App to scan ISBNs and compare prices.
Fulfillment by Amazon (FBA) is a service we offer sellers that lets them store their products in Amazon's fulfillment centers, and we directly pack, ship, and provide customer service for these products. Something we hope you'll especially enjoy: FBA items qualify for FREE Shipping and Amazon Prime.
If you're a seller, Fulfillment by Amazon can help you increase your sales. We invite you to learn more about Fulfillment by Amazon .
All Books, All the Time
Read author interviews, book reviews, editors picks, and more at the Amazon Book Review. Read it now
Frequently bought together
Customers who bought this item also bought
Customers who viewed this item also viewed
From the Back Cover
Learn assembly language, and you learn the machine
In this third edition of his bestselling guide to Intel x86 assembly language under Linux, Jeff Duntemann positions assembly not as unapproachable geek arcana but as a first programming language, suitable for readers who have no previous programming experience. As the fundamental language of the CPU, assembly lays the groundwork for all other programming languages, especially native-code C, C++, and Pascal. By mastering assembly, programmers will learn how x86 computers operate all the way down to "the bare silicon," at a level of detail that no other approach can equal.
Assembly Language Step by Step, Third Edition, helps you:
Review the fundamental concepts behind computing and programming, including the hexadecimal and binary number bases
Understand the evolution of the Intel CPUs and how modern x86 processors operate
Grasp the process of programming itself, from editing source code through assembly, linking, and debugging
Comprehend x86 32-bit protected-mode memory addressing
Learn the x86 instruction set by dissecting numerous complete example programs
Work with the wealth of free programming utilities under Ubuntu Linux, including the Kate editor, the NASM assembler, and the GNU toolset
Master practical details of Linux programming, including procedures, macros, the INT 80h call gate, and calls to the standard C libraries
About the Author
Jeff Duntemann has been writing about computing for over thirty years, and is the author of numerous books on programming, wireless networking, and system administration. He has been a columnist in Dr. Dobb's Journal, and has edited well-known programming publications like PC Techniques and Visual Developer. After hours, he enjoys blogging, astronomy, amateur radio, and writing science fiction.
Top customer reviews
There was a problem filtering reviews right now. Please try again later.
Additionally, I found this book to really be aimed at the beginner coder. I'd expect the average person getting into assembly coding understands different number systems, as well as a basic understanding of computer architecture (maybe I don't understand how folks are learning to code recently, but everybody I've worked with understood these basics). So because of that, the first few chapters are literally a waste of time/space.
Just my two cents - I wouldn't recommend this to folks looking to get into Linux coding today.
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.
That said, I would recommend this book for anyone looking to start from the ground up, who has a basic understanding of coding concepts, but little or no real coding experience. The author clearly wants the reader to fully grasp the *concepts* of assembly language and provides numerous metaphors to make them obvious. If you can install Ubuntu and know the basic ins and outs of the command line, you're set. Again, having a general handle on programming fundamentals like if/then, for/while, variables, functions, etc. will go a long way, but is certainly not required. I'm about halfway through the book, I bought it in search of a book that would (a) explain the high-level purpose of assembly language, (b) what it does "under the hood", (c) how it interfaces with higher-level languages (e.g., C/C++), and (d) lead me on a path towards higher-level languages only after arming me with the utter fundamental knowledge of how code/bits really talk to hardware (because, as even the author states, no one would really want to code exclusively in assembly language for all applications!).
* Only a PC with Linux installed is needed
* The author assumes no previous knowledge of programming
* The author clearly *cares* that the reader grasps the concept of the chapter, and goes to great length to balance necessary detail with conciseness
* The book is readable; i.e., I love just reading the book and learning from it, unlike many textbook style formats that inundate you with detail and math before giving you a purpose of your labor!
* As the title implies, this book moves step-by-step
* The end of the book leads into C programming (my personal goal)
* The author's metaphors are sometimes too drawn out and unnecessarily complex
* The clever/witty chapter/section titles are unnecessary and a bit annoying when trying to find specific content
* Not really a con, but it could be a bit more in-depth at times
* Writing this review in May 2016, the book is a bit outdated with respect to the referenced Ubuntu version and (presumably) other software used in the book