Synopses & Reviews
The eagerly anticipated new edition of the bestselling introduction to x86 assembly language
The long-awaited third edition of this bestselling introduction to assembly language has been completely rewritten to focus on 32-bit protected-mode Linux and the free NASM assembler. Assembly is the fundamental language bridging human ideas and the pure silicon hearts of computers, and popular author Jeff Dunteman retains his distinctive lighthearted style as he presents a step-by-step approach to this difficult technical discipline.
He starts at the very beginning, explaining the basic ideas of programmable computing, the binary and hexadecimal number systems, the Intel x86 computer architecture, and the process of software development under Linux. From that foundation he systematically treats the x86 instruction set, memory addressing, procedures, macros, and interface to the C-language code libraries upon which Linux itself is built.
- Serves as an ideal introduction to x86 computing concepts, as demonstrated by the only language directly understood by the CPU itself
- Uses an approachable, conversational style that assumes no prior experience in programming of any kind
- Presents x86 architecture and assembly concepts through a cumulative tutorial approach that is ideal for self-paced instruction
- Focuses entirely on free, open-source software, including Ubuntu Linux, the NASM assembler, the Kate editor, and the Gdb/Insight debugger
- Includes an x86 instruction set reference for the most common machine instructions, specifically tailored for use by programming beginners
- Woven into the presentation are plenty of assembly code examples, plus practical tips on software design, coding, testing, and debugging, all using free, open-source software that may be downloaded without charge from the Internet.
By starting with a complete, accessible picture of the internal operations of PCs, presenting a systematic approach to the process of writing, testing, and debugging programs in assembly language, and providing how-to information for using procedures and macros, this third edition offers beginners and intermediate programmers a solid and comprehensive understanding of how to cope with the complexity of assembly programming.
In the past four or five years, Ubuntu Linux has emerged as the best-supported and most widely used Linux distro, and Linux differs from Windows in that simple terminal apps may easily be created in assembly. All the tutorial material in this edition has been recast for Ubuntu Linux. The NASM assembler is still available (and much improved ) and will be retained. The portable and widely used Eclipse IDE system can be used with NASM and will be used for all tutorial presentations. The gcc compiler will be used for linking and gdb for debugging. Both utilities are shipped with Ubuntu Linux and are very widely used. Linux itself is written in gcc. All software mentioned in the book is downloadable without charge from the Internet.
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.
Table of Contents
Introduction: "Why Would You Want to Do That?"
Chapter 1 Another Pleasant Valley Saturday.
Chapter 2 Alien Bases.
Chapter 3 Lifting the Hood.
Chapter 4 Location, Location, Location.
Chapter 5 The Right to Assemble.
Chapter 6 A Place to Stand, with Access to Tools.
Chapter 7 Following Your Instructions.
Chapter 8 Our Object All Sublime.
Chapter 9 Bits, Flags, Branches, and Tables.
Chapter 10 Dividing and Conquering.
Chapter 11 Strings and Things.
Chapter 12 Heading Out to C.
Conclusion: Not the End, But Only the Beginning.
Appenix A Partial x86 Instruction Set Reference.
Appendix B Character Set Charts.