Professional assembly language
* 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...
Saved in:
| Main Author: | |
|---|---|
| Format: | eBook Book |
| Language: | English |
| Published: |
Indianapolis, IN
Wiley
2005
WILEY John Wiley & Sons, Incorporated Wrox |
| Edition: | 1 |
| Subjects: | |
| ISBN: | 076459561X, 0764579010, 9780764579011, 9780764595615 |
| Online Access: | Get full text |
| Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
Table of Contents:
- Professional assembly language -- About the Author -- Acknowledgments -- Contents -- 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 -- 6. Controlling Execution Flow -- 7. Using Numbers -- 8. Basic Math Functions -- 9. Advanced Math Functions -- 10. Working with Strings -- 11. Using Functions -- 12. Using Linux System Calls -- 13. Using Inline Assembly -- 14. Calling Assembly Libraries -- 15. Optimizing Routines -- 16. Using Files -- 17. Using Advanced IA-32 Features -- Index
- Saving and Restoring the FPU State -- Waiting versus Nonwaiting Instructions -- Optimizing Floating-Point Calculations -- Summary -- Chapter 10: Working with Strings -- Moving Strings -- Storing and Loading Strings -- Comparing Strings -- Scanning Strings -- Summary -- Chapter 11: Using Functions -- Defining Functions -- Assembly Functions -- Passing Data Values in C Style -- Using Separate Function Files -- Using Command-Line Parameters -- Summary -- Chapter 12: Using Linux System Calls -- The Linux Kernel -- System Calls -- Using System Calls -- Advanced System Call Return Values -- Tracing System Calls -- System Calls versus C Libraries -- Summary -- Chapter 13: Using Inline Assembly -- What Is Inline Assembly? -- Basic Inline Assembly Code -- Extended ASM -- Using Inline Assembly Code -- Summary -- Chapter 14: Calling Assembly Libraries -- Creating Assembly Functions -- Compiling the C and Assembly Programs -- Using Assembly Functions in C Programs -- Using Assembly Functions in C++ Programs -- Creating Static Libraries -- Using Shared Libraries -- Debugging Assembly Functions -- Summary -- Chapter 15: Optimizing Routines -- Optimized Compiler Code -- Creating Optimized Code -- Optimization Tricks -- Summary -- Chapter 16: Using Files -- The File-Handling Sequence -- Opening and Closing Files -- Writing to Files -- Reading Files -- Reading, Processing, and Writing Data -- Memory-Mapped Files -- Summary -- Chapter 17: Using Advanced IA-32 Features -- A Brief Review of SIMD -- Detecting Supported SIMD Operations -- Using MMX Instructions -- Using SSE Instructions -- Using SSE2 Instructions -- SSE3 Instructions -- Summary -- Index
- Intro -- Professional Assembly Language -- About the Author -- Acknowledgments -- Contents -- Introduction -- Who This Book Is For -- What This Book Covers -- How This Book Is Structured -- What You Need to Use This Book -- Conventions -- Source Code -- Errata -- p2p. wrox. com -- Chapter 1: What Is Assembly Language? -- Processor Instructions -- High-Level Languages -- Assembly Language -- Summary -- Chapter 2: The IA-32 Platform -- Core Parts of an IA-32 Processor -- Advanced IA-32 Features -- The IA-32 Processor Family -- Summary -- Chapter 3: The Tools of the Trade -- The Development Tools -- The GNU Assembler -- The GNU Linker -- The GNU Compiler -- The GNU Debugger Program -- The KDE Debugger -- The GNU Objdump Program -- The GNU Profiler Program -- A Complete Assembly Development System -- Summary -- Chapter 4: A Sample Assembly Language Program -- The Parts of a Program -- Creating a Simple Program -- Debugging the Program -- Using C Library Functions in Assembly -- Summary -- Chapter 5: Moving Data -- Defining Data Elements -- Moving Data Elements -- Conditional Move Instructions -- Exchanging Data -- The Stack -- Optimizing Memory Access -- Summary -- Chapter 6: Controlling Execution Flow -- The Instruction Pointer -- Unconditional Branches -- Conditional Branches -- Loops -- Duplicating High-Level Conditional Branches -- Optimizing Branch Instructions -- Summary -- Chapter 7: Using Numbers -- Numeric Data Types -- Integers -- SIMD Integers -- Binary Coded Decimal -- Floating-Point Numbers -- Conversions -- Summary -- Chapter 8: Basic Math Functions -- Integer Arithmetic -- Shift Instructions -- Decimal Arithmetic -- Logical Operations -- Summary -- Chapter 9: Advanced Math Functions -- The FPU Environment -- Basic Floating-Point Math -- Advanced Floating-Point Math -- Floating-Point Conditional Branches

