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
40 Algorithms Every Programmer Should Know
Learn algorithms for solving classic computer science problems with this concise guide covering everything from fundamental …
book
Mastering Assembly Programming
Incorporate the assembly language routines in your high level language applications About This Book Understand the …
book
Assembly Language Step-by-Step: Programming with Linux®, Third Edition
The eagerly anticipated new edition of the bestselling introduction to x86 assembly language The long-awaited third …
book
Practical Reverse Engineering: x86, x64, ARM, Windows Kernel, Reversing Tools, and Obfuscation
Analyzing how hacks are done, so as to stop them in the future Reverse engineering is …