Modern X86 Assembly Language Programming: 32-bit, 64-bit, SSE, and AVX (Paperback)
暫譯: 現代 X86 組合語言程式設計:32 位元、64 位元、SSE 與 AVX (平裝本)

Daniel Kusswurm

  • 出版商: Apress
  • 出版日期: 2014-12-01
  • 售價: $1,930
  • 貴賓價: 9.5$1,834
  • 語言: 英文
  • 頁數: 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 位元核心架構、資料類型、內部暫存器、記憶體位址模式及基本指令集
    - 64 位元對 SSE 和 AVX 技術的擴展
    - X86 組合語言優化策略和技術

    你將學到的內容:

    - 如何使用 x86 的 32 位元和 64 位元指令集來創建可從高階語言 (C++) 調用的性能增強函數
    - 如何使用 x86 組合語言有效地操作常見的程式設計結構,包括整數、浮點值、文本字串、陣列和結構
    - 如何使用 SSE 和 AVX 擴展顯著加速計算密集型算法和子例程在圖像處理、計算機圖形學、數學和統計等問題領域的性能
    - 如何使用各種編碼策略和技術最佳化利用 x86 的微架構以獲得最大可能的性能
    - 本書附錄可在此下載:http://www.apress.com/9781484200650?gtmf=s

    本書的目標讀者

    《現代 X86 組合語言程式設計》的目標讀者是軟體開發人員,包括:

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

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

    目錄

    前言/序言

    1: X86-32 核心架構

    2: X86-32 核心架構程式設計

    3: X87 浮點單元

    4: X87 浮點單元程式設計

    5: MMX 技術

    6: MMX 程式設計

    7: 流式 SIMD 擴展 (SSE)

    8: X86-SSE 程式設計 – 標量浮點

    9: X86-SSE 程式設計 – 打包浮點

    10: X86-SSE 程式設計 – 打包整數

    11: X86-SSE 程式設計 – 文本字串

    12: 高級向量擴展 (AVX)

    13: X86-AVX 程式設計 – 標量浮點

    14: X86-AVX 程式設計 – 打包浮點

    15: X86-AVX 程式設計 – 打包整數

    16: X86-AVX 程式設計 – 新指令

    17: X86-64 核心架構

    18: X86-64 核心架構程式設計

    19: X86-64 SIMD 架構

    20: X86-64 SIMD 程式設計

    21: 高級主題和優化技術

    22: 高級主題程式設計