Modern X86 Assembly Language Programming

Covers x86 64-bit, AVX, AVX2, and AVX-512

  • Daniel Kusswurm

Table of contents

  1. Front Matter
    Pages i-xxi
  2. Daniel Kusswurm
    Pages 1-19
  3. Daniel Kusswurm
    Pages 21-49
  4. Daniel Kusswurm
    Pages 51-86
  5. Daniel Kusswurm
    Pages 87-107
  6. Daniel Kusswurm
    Pages 109-166
  7. Daniel Kusswurm
    Pages 167-214
  8. Daniel Kusswurm
    Pages 215-275
  9. Daniel Kusswurm
    Pages 277-284
  10. Daniel Kusswurm
    Pages 285-346
  11. Daniel Kusswurm
    Pages 347-384
  12. Daniel Kusswurm
    Pages 385-419
  13. Daniel Kusswurm
    Pages 421-432
  14. Daniel Kusswurm
    Pages 433-490
  15. Daniel Kusswurm
    Pages 491-528
  16. Daniel Kusswurm
    Pages 529-540
  17. Daniel Kusswurm
    Pages 541-584
  18. Back Matter
    Pages 585-604

About this book


Gain the fundamentals of x86 assembly language programming and focus on the updated aspects of the x86 instruction set that are most relevant to application software development. This book covers topics including the new Advanced Vector Extensions (AVX) 512 programming, from the latest x86 instructions set, and the MMX technology and instruction set.

The focus in this second edition is exclusively on 64-bit base programming architecture and AVX programming. Modern X86 Assembly Language Programming’s structure and sample code are designed to help you quickly understand x86 assembly language programming and the computational capabilities of the x86 platform. After reading and using this book, you’ll be able to code performance-enhancing functions and algorithms using x86 64-bit assembly language and the AVX, AVX2 and AVX-512 instruction set extensions.

You will:

  • Discover details of the x86 64-bit platform including its core architecture, data types, registers, memory addressing modes, and the basic instruction set
  • Use the x86 64-bit instruction set to create performance-enhancing functions that are callable from a high-level language (C++)
  • Employ x86 64-bit assembly language to efficiently manipulate common data types and programming constructs including integers, text strings, arrays, and structures
  • Use the AVX instruction set to perform scalar floating-point arithmetic 
  • Exploit the AVX, AVX2, and AVX-512 instruction sets to significantly accelerate the performance of computationally-intense algorithms in problem domains such as image processing, computer graphics, mathematics, and statistics
  • Apply various coding strategies and techniques to optimally exploit the x86 64-bit, AVX, AVX2, and AVX-512 instruction sets for maximum possible performance


assembly x86 programming 32-bit 64-bit language code source avx simd streaming avx-512

Authors and affiliations

  • Daniel Kusswurm
    • 1
  1. 1.GenevaUSA

Bibliographic information