Professional assembly language / Richard Blum.

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 engineeringCovering assembly language in the...

Full description

Saved in:
Bibliographic Details
Main Author: Blum, Richard, 1962-
Format: eBook
Language:English
Published: Indianapolis, IN : Wiley, ©2005.
Series:Wrox professional guides.
Subjects:
Online Access:Click for online access
Table of Contents:
  • 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 ProgramThe 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 BranchesOptimizing 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; Saving and Restoring the FPU State; Waiting versus Nonwaiting Instructions
  • Optimizing Floating-Point CalculationsSummary; 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 CodeExtended 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