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
Introduction to 80x86 Assembly Language and Computer Architecture, 3rd Edition
A Revised and Updated Edition of the Authoritative Text This revised and updated Third Edition of …
book
Introduction to 80x86 Assembly Language and Computer Architecture, 2nd Edition
Thoroughly revised and updated throughout, the Second Edition of Introduction to 80x86 Assembly Language and Computer …
book
X86 Assembly Language and C Fundamentals
Designed as a tutorial, this book explains how to write programs in the X86 language, the …
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 …