Modern X86 Assembly Language Programming_ 32-bit, 64-bit, SSE, and AVX [Kusswurm 2014-11-25].pdf
(
9045 KB
)
Pobierz
www.it-ebooks.info
For your convenience Apress has placed some of the front
matter material after the index. Please use the Bookmarks
and Contents at a Glance links to access them.
www.it-ebooks.info
Contents at a Glance
About the Author �½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½
xix
About the Technical Reviewer �½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½
xxi
Acknowledgments �½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½
xxiii
Introduction �½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½xxv
■
Chapter 1: X86-32 Core Architecture �½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½
1
■
Chapter 2: X86-32 Core Programming �½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½
27
■
Chapter 3: X87 Floating-Point Unit �½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½
87
■
Chapter 4: X87 FPU Programming �½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½
103
■
Chapter 5: MMX Technology �½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½
133
■
Chapter 6: MMX Technology Programming �½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½
147
■
Chapter 7: Streaming SIMD Extensions �½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½
179
■
Chapter 8: X86-SSE programming – Scalar Floating-Point �½�½�½�½�½�½�½�½
207
■
Chapter 9: X86-SSE Programming – Packed Floating-Point�½�½�½�½�½�½�½
237
■
Chapter 10: X86-SSE Programming – Packed Integers �½�½�½�½�½�½�½�½�½�½�½�½�½�½
273
■
Chapter 11: X86-SSE Programming – Text Strings �½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½
303
■
Chapter 12: Advanced Vector Extensions (AVX) �½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½
327
■
Chapter 13: X86-AVX Programming - Scalar Floating-Point �½�½�½�½�½�½
351
■
Chapter 14: X86-AVX Programming - Packed Floating-Point �½�½�½�½�½�½�½�½�½�½�½�½377
■
Chapter 15: X86-AVX Programming - Packed Integers �½�½�½�½�½�½�½�½�½�½�½�½�½�½
405
v
www.it-ebooks.info
■
Contents at a GlanCe
■
Chapter 16: X86-AVX Programming - New Instructions�½�½�½�½�½�½�½�½�½�½�½�½�½
439
■
Chapter 17: X86-64 Core Architecture �½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½
491
■
Chapter 18: X86-64 Core Programming �½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½
503
■
Chapter 19: X86-64 SIMD Architecture �½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½
557
■
Chapter 20: X86-64 SIMD Programming �½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½
563
■
Chapter 21: Advanced Topics and Optimization Techniques �½�½�½�½�½�½
623
■
Chapter 22: Advanced Topics Programming �½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½
637
Index �½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½�½
657
vi
www.it-ebooks.info
Introduction
Since the invention of the personal computer, software developers have used assembly
language to create innovative solutions for a wide variety of algorithmic challenges.
During the early days of the PC era, it was common practice to code large portions of
a program or complete applications using x86 assembly language. Even as the use of
high-level languages such as C, C++, and C# became more prevalent, many software
developers continued to employ assembly language to code performance-critical
sections of their programs. And while compilers have improved remarkably over the
years in terms of generating machine code that is both spatially and temporally efficient,
situations still exist where it makes sense for software developers to exploit the benefits of
assembly language programming.
The inclusion of single-instruction multiple-data (SIMD) architectures in modern
x86 processors provides another reason for the continued interest in assembly language
programming. A SIMD-capable processor includes computational resources that
facilitate concurrent calculations using multiple data values, which can significantly
improve the performance of applications that must deliver real-time responsiveness.
SIMD architectures are also well-suited for computationally-intense problem domains
such as image processing, audio and video encoding, computer-aided design, computer
graphics, and data mining. Unfortunately, many high-level languages and development
tools are unable to fully (or even partially) exploit the SIMD capabilities of a modern x86
processor. Assembly language, on the other hand, enables the software developer to take
full advantage of a processor’s entire computational resource suite.
Modern X86 Assembly Language Programming
Modern X86 Assembly Language Programming
is an edifying text on the subject of x86
assembly language programming. Its primary purpose is to teach you how to code
functions using x86 assembly language that can be invoked from a high-level language.
The book includes informative material that explains the internal architecture of an x86
processor as viewed from the perspective of an application program. It also contains
an abundance of sample code that is structured to help you quickly understand x86
assembly language programming and the computational resources of the x86 platform.
Major topics of the book include the following:
•
•
X86 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
xxv
www.it-ebooks.info
Plik z chomika:
musli_com
Inne pliki z tego folderu:
6502 Assembly-Language Programming for Apple, Commodore, and Atari Computers [Lampton 1985].pdf
(36445 KB)
Guide to Assembly Language Programming in Linux [Dandamudi 2005-07-15].pdf
(31414 KB)
ARM Assembly Language with Hardware Experiments [Elahi & Arjeski 2014-12-09].pdf
(14458 KB)
64 Bit Intel Assembly Language Programming for Linux.pdf
(5008 KB)
Assembly Language Primer for the IBM PC & XT [Lafore 1984-05-29].pdf
(12297 KB)
Inne foldery tego chomika:
3D Design - Programming
ActionScript
Actionscript - Flash - Flex - Air
Ada
ADO
Zgłoś jeśli
naruszono regulamin