Book description
Unlike high-level languages such as Java and C++, assembly language is much closer to the machine code that actually runs computers; it's used to create programs or modules that are very fast and efficient, as well as in hacking exploits and reverse engineering
Covering assembly language in the Pentium microprocessor environment, this code-intensive guide shows programmers how to create stand-alone assembly language programs as well as how to incorporate assembly language libraries or routines into existing high-level applications
Demonstrates how to manipulate data, incorporate advanced functions and libraries, and maximize application performance
Examples use C as a high-level language, Linux as the development environment, and GNU tools for assembling, compiling, linking, and debugging
Table of contents
- Copyright
- About the Author
- Credits
- Acknowledgments
- Introduction
- 1. What Is Assembly Language?
- 2. The IA-32 Platform
- 3. The Tools of the Trade
- 4. A Sample Assembly Language Program
-
5. Moving Data
- 5.1. Defining Data Elements
- 5.2. Moving Data Elements
- 5.3. Conditional Move Instructions
- 5.4. Exchanging Data
- 5.5. The Stack
- 5.6. Optimizing Memory Access
- 5.7. Summary
- 6. Controlling Execution Flow
-
7. Using Numbers
- 7.1. Numeric Data Types
- 7.2. Integers
- 7.3. SIMD Integers
- 7.4. Binary Coded Decimal
-
7.5. Floating-Point Numbers
- 7.5.1. What are floating-point numbers?
- 7.5.2. Standard floating-point data types
- 7.5.3. IA-32 floating-point values
- 7.5.4. Defining floating-point values in GAS
- 7.5.5. Moving floating-point values
- 7.5.6. Using preset floating-point values
- 7.5.7. SSE floating-point data types
- 7.5.8. Moving SSE floating-point values
- 7.6. Conversions
- 7.7. Summary
- 8. Basic Math Functions
- 9. Advanced Math Functions
- 10. Working with Strings
- 11. Using Functions
- 12. Using Linux System Calls
-
13. Using Inline Assembly
- 13.1. What Is Inline Assembly?
- 13.2. Basic Inline Assembly Code
-
13.3. Extended ASM
- 13.3.1. Extended ASM format
- 13.3.2. Specifying input and output values
- 13.3.3. Using registers
- 13.3.4. Using placeholders
- 13.3.5. Referencing placeholders
- 13.3.6. Alternative placeholders
- 13.3.7. Changed registers list
- 13.3.8. Using memory locations
- 13.3.9. Using floating-point values
- 13.3.10. Handling jumps
- 13.4. Using Inline Assembly Code
- 13.5. Summary
- 14. Calling Assembly Libraries
- 15. Optimizing Routines
- 16. Using Files
- 17. Using Advanced IA-32 Features
Product information
- Title: Professional Assembly Language
- Author(s):
- Release date: February 2005
- Publisher(s): Wrox
- ISBN: 9780764579011
You might also like
book
x64 Assembly Language Step-by-Step, 4th Edition
The long-awaited x64 edition of the bestselling introduction to Intel assembly language In the newly revised …
book
Modern Assembly Language Programming with the ARM Processor
Modern Assembly Language Programming with the ARM Processor is a tutorial-based book on assembly language programming …
book
X86 Assembly Language and C Fundamentals
Designed as a tutorial, this book explains how to write programs in the X86 language, the …
book
Art of Assembly Language, 1st Edition
Presents assembly language from the high-level programmer's point of view, so you can start writing meaningful …