
Professional Assembly Language.
Title:
Professional Assembly Language.
Author:
Blum, Richard.
ISBN:
9780764595615
Personal Author:
Edition:
1st ed.
Physical Description:
1 online resource (576 pages)
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 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 -- 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.
Abstract:
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.
Local Note:
Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2017. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries.
Subject Term:
Genre:
Electronic Access:
Click to View