- 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 youll 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
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
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