没有合适的资源?快使用搜索试试~ 我知道了~
Modern.X86.Assembly.Language.Programming.32-bit.64-bit.SSE.and.A...
5星 · 超过95%的资源 需积分: 32 305 下载量 200 浏览量
2015-02-25
12:14:33
上传
评论 2
收藏 8.31MB PDF 举报
温馨提示
试读
685页
Modern.X86.Assembly.Language.Programming.32-bit.64-bit.SSE.and.AVX
资源推荐
资源详情
资源评论
Shelve in
Programming Languages /General
User level:
Beginning–Intermediate
BOOKS FOR PROFESSIONALS BY PROFESSIONALS
®
Modern X86 Assembly
Language Programming
Modern X86 Assembly Language Programming teaches you the fundamentals of
x86 assembly language programming. It focuses on aspects of the x86 instruction
set that are most relevant to application software development. The book’s struc-
ture and sample code are designed to help you quickly understand x86 assembly
language programming and the computational resources of the x86 platform.
The target audience for Modern X86 Assembly Language Programming is
software developers who want to learn how to code performance-enhancing
algorithms and functions using x86 assembly language. It’s also ideal for software
developers who have a basic understanding of x86 assembly language program-
ming and want to learn how to exploit the SSE and AVX instruction sets.
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 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
Kusswurm
9781484 200650
54999
ISBN 978-1-4842-0065-0
RELATED
www.apress.com
SOURCE CODE ONLINE
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.
v
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
■ CONTENTS AT A GLANCE
vi
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
xxv
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 ecient,
situations still exist where it makes sense for software developers to exploit the benets of
assembly language programming.
e 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 signicantly
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.
e 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, •
oating-point encodings, and instruction set
剩余684页未读,继续阅读
xfliu364
- 粉丝: 1
- 资源: 24
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页