Modern X86 Assembly Language Programming: 32-bit, 64-bit, SSE, and AVX (Paperback)

Daniel Kusswurm

  • 出版商: Apress
  • 出版日期: 2014-12-01
  • 售價: $2,150
  • 貴賓價: 9.5$2,043
  • 語言: 英文
  • 頁數: 700
  • 裝訂: Paperback
  • ISBN: 1484200659
  • ISBN-13: 9781484200650
  • 相關分類: Assembly
  • 無法訂購

買這商品的人也買了...

商品描述

Modern X86 Assembly Language Programming shows the fundamentals of x86 assembly language programming. It focuses on the aspects of the x86 instruction set that are most relevant to application software development. The book's structure and sample code are designed to help the reader quickly understand x86 assembly language programming and the computational capabilities of the x86 platform. Book appendixes can be downloaded here: http://www.apress.com/9781484200650?gtmf=s

Major topics of the book include the following:

  • 32-bit core architecture, data types, internal registers, memory addressing modes, and the basic instruction set
  • X87 core architecture, register stack, special purpose registers, floating-point encodings, and instruction set
  • MMX technology and instruction set
  • Streaming SIMD extensions (SSE) and Advanced Vector Extensions (AVX) including internal registers, packed integer arithmetic, packed and scalar floating-point arithmetic, and associated instruction sets
  • 64-bit core architecture, data types, internal registers, memory addressing modes, and the basic instruction set
  • 64-bit extensions to SSE and AVX technologies
  • X86 assembly language optimization strategies and techniques

What you’ll learn

  • How to use the x86’s 32-bit and 64-bit instruction sets to create performance-enhancing functions that are callable from a high-level language (C++)
  • How to use x86 assembly language to efficiently manipulate common programming constructs including integers, floating-point values, text strings, arrays, and structures
  • How to use the SSE and AVX extensions to significantly accelerate the performance of computationally-intensive algorithms and subroutines in problem domains such as image processing, computer graphics, mathematics, and statistics
  • How to use various coding strategies and techniques to optimally exploit the x86’s microarchitecture for maximum possible performance
  • Book appendixes can be downloaded here: http://www.apress.com/9781484200650?gtmf=s

Who this book is for

    The target audience for Modern X86 Assembly Language Programming is software developers including:

    • Software developers who are creating application programs for Windows-based platforms and want to learn how to write performance-enhancing algorithms and functions using x86 assembly language
    • Software developers who are creating application programs for non-Windows environments and want to learn x86 assembly language programming
    • Software developers who have a basic understanding of x86 assembly language programming and want to learn how to use SSE and AVX
    • Software developers and computer science students who want or need to gain a better understanding of the x86 platform including its internal architecture and instruction sets
    The primary audience for the book is Windows software developers since the sample code will be created using Visual C++ and Microsoft Macro Assembler. Developers targeting non- Windows platforms, however, also can learn from the book since most of the content will be organized and communicated independent of any specific operating system. In order to understand the book’s subject material, a background that includes some programming experience using C or C++ will be helpful. Experience with or knowledge of a particular Windows API will not be a prerequisite to benefit from the book.

    Table of Contents

    Preface/foreword

    1: X86-32 Core Architecture

    2: X86-32 Core Architecture Programming

    3: X87 Floating Point Unit

    4: X87 Floating Point Unit Programming

    5: MMX Technology

    6: MMX Programming

    7: Streaming SIMD Extensions (SSE)

    8: X86-SSE Programming – Scalar Floating-Point

    9: X86-SSE Programming – Packed Floating-Point

    10: X86-SSE Programming – Packed Integers

    11: X86-SSE Programming – Text Strings

    12: Advanced Vector Extensions (AVX)

    13: X86-AVX Programming – Scalar Floating-Point

    14: X86-AVX Programming – Packed Floating-Point

    15: X86-AVX Programming – Packed Integers

    16: X86-AVX Programming – New Instructions

    17: X86-64 Core Architecture

    18: X86-64 Core Architecture Programming

    19: X86-64 SIMD Architecture

    20: X86-64 SIMD Programming

    21: Advanced Topics and Optimization Techniques

    22: Advanced Topics Programming

    商品描述(中文翻譯)

    《現代 X86 組合語言程式設計》展示了 x86 組合語言程式設計的基礎知識。它專注於與應用軟體開發最相關的 x86 指令集方面。本書的結構和範例程式碼旨在幫助讀者快速理解 x86 組合語言程式設計和 x86 平台的計算能力。書中的附錄可以在此下載:http://www.apress.com/9781484200650?gtmf=s

    本書的主要主題包括以下內容:
    - 32 位核心架構、資料類型、內部暫存器、記憶體位址模式和基本指令集
    - X87 核心架構、暫存器堆疊、特殊暫存器、浮點數編碼和指令集
    - MMX 技術和指令集
    - 流式 SIMD 擴展(SSE)和高級向量擴展(AVX),包括內部暫存器、打包整數運算、打包和純量浮點運算以及相關指令集
    - 64 位核心架構、資料類型、內部暫存器、記憶體位址模式和基本指令集
    - SSE 和 AVX 技術的 64 位擴展
    - X86 組合語言優化策略和技巧

    你將學到以下內容:
    - 如何使用 x86 的 32 位和 64 位指令集創建可從高級語言(如 C++)呼叫的性能增強函數
    - 如何使用 x86 組合語言高效操作常見的程式設計結構,包括整數、浮點數、文字字串、陣列和結構
    - 如何使用 SSE 和 AVX 擴展大幅加速計算密集型算法和子程序的性能,應用於圖像處理、電腦圖形、數學和統計等問題領域
    - 如何使用各種編碼策略和技巧,最佳地利用 x86 的微架構以獲得最大可能的性能

    本書的目標讀者是軟體開發人員,包括:
    - 為基於 Windows 平台創建應用程式的軟體開發人員,並希望學習如何使用 x86 組合語言編寫性能增強的算法和函數
    - 為非 Windows 環境創建應用程式的軟體開發人員,並希望學習 x86 組合語言程式設計
    - 具有基本的 x86 組合語言程式設計理解,並希望學習如何使用 SSE 和 AVX
    - 希望或需要更好地了解 x86 平台,包括其內部架構和指令集的軟體開發人員和計算機科學學生

    本書的主要讀者是 Windows 軟體開發人員,因為範例程式碼將使用 Visual C++ 和 Microsoft Macro Assembler 創建。然而,針對非 Windows 平台的開發人員也可以從本書中學習,因為大部分內容將獨立於任何特定的作業系統組織和傳達。為了理解本書的主題材料,具有使用 C 或 C++ 的一些程式設計經驗的背景將有所幫助。對於從事特定 Windows API 的經驗或知識不是從本書中受益的先決條件。

    目錄:
    - 前言/序言
    - 第一章:X86-32 核心架構
    - 第二章:X86-32 核心架構程式設計
    - 第三章:X87 浮點單元
    - 第四章:X87 浮點單元程式設計
    - 第五章:MMX 技術
    - 第六章:MMX 程式設計
    - 第七章:流式 SIMD 擴展(SSE)
    - 第八章:X86-SSE 程式設計 - 純量浮點