现代x86汇编语言程序设计pdf

图书网 2018年8月27日23:09:3473.6K2

现代x86汇编语言程序设计 内容简介

本书从应用编程的角度解释x86处理器的内部架构和执行环境,全面介绍如何用x86汇编语言编写可被高级语言调用的函数。主要内容包括:x86-32核心架构(第1章和第2章),x87浮点单元(第3章和第4章),MMX技术(第5章和第6章),流式SIMD扩展(第7章至第11章),高级向量扩展(第12章至第16章),x86-64核心架构(第17章和第18章),x86-64SSE和AVX(第19章和第20章),高级主题(第21章和第22章)。书中包含了大量的示例代码,以帮助读者快速理解x86汇编语言编程和x86平台的计算资源。本书可作为高等院校计算机及相关专业学生的教材,也可供想要学习x86汇编语言编程的软件开发者使用。

现代x86汇编语言程序设计 目录

第1章 x86-32核心架构

1.1 简史

1.2 数据类型

1.2.1 基本数据类型

1.2.2 数值数据类型

1.2.3 组合数据类型

1.2.4 其他数据类型

1.3 内部架构

1.3.1 段寄存器

1.3.2 通用寄存器

1.3.3 EFLAGS寄存器

1.3.4 指令指针

1.3.5 指令操作数

1.3.6 内存寻址模式

1.4 指令集浏览

1.4.1 数据传输

1.4.2 二进制算术

1.4.3 数据比较

1.4.4 数据转换

1.4.5 逻辑运算

1.4.6 旋转和移位

1.4.7 字节设置和二进制位串

1.4.8 串

1.4.9 标志操纵

1.4.10 控制转移

1.4.11 其他指令

1.5 总结

第2章 x86-32核心编程

2.1 开始

2.1.1 第一个汇编语言函数

2.1.2 整数乘法和除法

2.2 x86-32编程基础

2.2.1 调用约定

2.2.2 内存寻址模式

2.2.3 整数加法

2.2.4 条件码

2.3 数组

2.3.1 一维数组

2.3.2 二维数组

2.4 结构体

2.4.1 简单结构体

2.4.2 动态结构体创建

2.5 字符串

2.5.1 字符计数

2.5.2 字符串拼接

2.5.3 比较数组

2.5.4 反转数组

2.6 总结

第3章 x87浮点单元

3.1 x87FPU核心架构

3.1.1 数据寄存器

3.1.2 x87 FPU专用寄存器

3.1.3 x87 FPU操作数和编码

3.2 x87 FPU指令集

3.2.1 数据传输

3.2.2 基本运算

3.2.3 数据比较

3.2.4 超越函数

3.2.5 常量

3.2.6 控制

3.3 总结

第4章 x87 FPU编程

4.1 x87 FPU编程基础

4.1.1 简单计算

4.1.2 浮点比较

4.2 x87 FPU高级编程

4.2.1 浮点数组

4.2.2 超越指令(超越函数指令)

4.2.3 栈的高级应用

4.3 总结

第5章 MMX技术

5.1 SIMD处理概念

5.2 回绕和饱和运算

5.3 MMX执行环境

5.4 MMX指令集

5.4.1 数据传输

5.4.2 算术运算

5.4.3 比较

5.4.4 转换

5.4.5 逻辑和位移

5.4.6 解组和重排

5.4.7 插入和提取

5.4.8 状态和缓存控制

5.5 总结

第6章 MMX技术编程

6.1 MMX编程基础

6.1.1 组合整型加法

6.1.2 组合整型移位

6.1.3 组合整型乘法

6.2 MMX高级编程

6.2.1 整数数组处理

6.2.2 使用MMX和x87FPU

6.3 总结

第7章 流式SIMD扩展

7.1 x86-SSE概览

7.2 x86-SSE执行环境

7.2.1 x86-SSE寄存器组

7.2.2 x86-SSE数据类型

7.2.3 x86-SSE的控制-状态寄存器

7.3 x86-SSE处理技术

7.4 x86-SSE指令集概览

7.4.1 标量浮点数据传输

7.4.2 标量浮点算术运算

7.4.3 标量浮点比较

7.4.4 标量浮点转换

7.4.5 组合浮点数据传输

7.4.6 组合浮点算术运算

7.4.7 组合浮点比较

7.4.8 组合浮点转换

7.4.9 组合浮点重排和解组

7.4.10 组合浮点插入和提取

7.4.11 组合浮点混合

7.4.12 组合浮点逻辑

7.4.13 组合整数扩展

7.4.14 组合整数数据传输

7.4.15 组合整数算术运算

7.4.16 组合整数比较

7.4.17 组合整数转换

7.4.18 组合整数重排和解组

7.4.19 组合整数插入和提取

7.4.20 组合整数混合

7.4.21 组合整数移位

7.4.22 文本字符串处理

7.4.23 非临时数据传输和缓存控制

7.4.24 其他

7.5 总结

第8章 x86-SSE编程——标量浮点

8.1 标量浮点运算基础

8.1.1 标量浮点算术运算

8.1.2 标量浮点数的比较

8.1.3 标量浮点数的类型转换

8.2 高级标量浮点编程

8.2.1 用标量浮点指令计算球体表面积和体积

8.2.2 用标量浮点指令计算平行四边形面积和对角线长度

8.3 总结

第9章 x86-SSE编程——组合浮点

9.1 组合浮点运算基础

9.1.1 组合浮点算术运算

9.1.2 组合浮点数的比较

9.1.3 组合浮点数的类型转换

9.2 高级组合浮点编程

9.2.1 组合浮点数最小二乘法

9.2.2 用组合浮点数进行4×4矩阵的计算

9.3 总结

第10章 x86-SSE编程——组合整数

10.1 组合整数基础

10.2 高级组合整数编程

10.2.1 组合整数直方图

10.2.2 组合整数阈值分割

10.3 总结

第11章 x86-SSE编程——字符串

11.1 字符串基础知识

11.2 字符串编程

11.2.1 计算字符串长度

11.2.2 字符替换

11.3 总结

第12章 AVX——高级向量扩展

12.1 x86-AVX概述

12.2 x86-AVX执行环境

12.2.1 x86-AVX寄存器组

12.2.2 x86-AVX数据类型

12.2.3 x86-AVX指令语法

12.3 x86-AVX功能扩展

12.4 x86-AVX指令集概述

12.4.1 升级版的x86-SSE指令

12.4.2 新指令

12.4.3 功能扩展指令

12.5 总结

第13章 x86-AVX标量浮点编程

13.1 编程基础

13.1.1 标量浮点运算

13.1.2 标量浮点比较

13.2 高级编程

13.2.1 一元二次方程的根

13.2.2 球坐标系

13.3 总结

第14章 x86-AVX组合浮点编程

14.1 编程基础

14.1.1 组合浮点运算

14.1.2 组合浮点比较

14.2 高级编程

14.2.1 相关系数

14.2.2 矩阵列均值

14.3 总结

第15章 x86-AVX组合整型编程

15.1 组合整型基础

15.1.1 组合整型运算

15.1.2 组合整数解组操作

15.2 高级编程

15.2.1 图像像素裁剪

15.2.2 图像阈值二分法

15.3 总结

第16章 x86-AVX编程——新指令

16.1 检测处理器特性(CPUID)

16.2 数据操作指令

16.2.1 数据广播

16.2.2 数据混合

16.2.3 数据排列

16.2.4 数据收集

16.3 融合乘加编程

16.4 通用寄存器指令

16.4.1 不影响标志位的乘法和移位操作

16.4.2 增强的位操作

16.5 总结

第17章 x86-64核心架构

17.1 内部架构

17.1.1 通用寄存器

17.1.2 RFLAGS寄存器

17.1.3 指令指针寄存器

17.1.4 指令操作数

17.1.5 内存寻址模式

17.2 x86-64和x86-32的区别

17.3 指令集概览

17.3.1 基本指令使用

17.3.2 无效指令

17.3.3 新指令

17.3.4 不鼓励使用的资源

17.4 总结

第18章 x86-64核心编程

18.1 x86-64编程基础

18.1.1 整数算术运算

18.1.2 内存寻址

18.1.3 整型操作数

18.1.4 浮点数运算

18.2 x86-64调用约定

18.2.1 基本栈帧

18.2.2 使用非易变寄存器

18.2.3 使用非易变类型XMM寄存器

18.2.4 简化序言和结语的宏

18.3 x86-64数组和字符串

18.3.1 二维数组

18.3.2 字符串

18.4 总结

第19章 x86-64单指令多数据流架构

19.1 x86-SSE-64执行环境

19.1.1 x86-SSE-64寄存器组

19.1.2 x86-SSE-64数据类型

19.1.3 x86-SSE-64指令集概述

19.2 x86-AVX执行环境

19.2.1 x86-AVX-64寄存器组

19.2.2 x86-AVX-64数据类型

19.2.3 x86-AVX-64指令集概述

19.3 总结

第20章 x86-64单指令多数据流编程

20.1 x86-SSE-64编程

20.1.1 直方图绘制

20.1.2 图像转换

20.1.3 向量数组

20.2 x86-AVX-64编程

20.2.1 椭圆体计算

20.2.2 RGB图像处理

20.2.3 矩阵求逆

20.2.4 其他指令

20.3 总结

第21章 高级主题和优化技巧

21.1 处理器微架构

21.1.1 多核处理器概述

21.1.2 微架构流水线功能

21.1.3 执行引擎

21.2 优化汇编语言代码

21.2.1 基本优化

21.2.2 浮点算术

21.2.3 程序分支

21.2.4 数据对齐

21.2.5 SIMD技巧

21.3 总结

第22章 高级主题编程

22.1 无时态内存存储

22.2 数据预取

22.3 总结

索引

现代x86汇编语言程序设计 精彩文摘

本章将从应用程序的角度解析x86—32核心架构。我们会从x86平台的简要历史开始介绍,以便为后续的讨论提供一个参考框架。接下来会回顾x86的数据类型,包括基本类型、数字类型和组合类型。而后,我们将深入挖掘x86-32的内部架构细节,包括执行单元、通用寄存器、状态标志、指令操作数和内存寻址模式。本章的最后一部分是对x86-32指令集的概览。

与C和c++这样的高级语言不同,汇编语言编程需要软件开发者在写代码之前比较全面地理解目标处理器的架构特征。这一章的内容将满足大家的这一需要,并为理解第2章中的示例代码奠定基础。本章也为理解第17章将讨论的x86-64核心架构准备了一些基础。

图书网:现代x86汇编语言程序设计pdf

继续阅读

→→→→→→→→→→→→→→→→→→→→查找获取

研究生/本科/专科教材

管理理论与实务(第3版)pdf

管理理论与实务(第3版) 作者:赵丽芬,刘小元 管理理论与实务(第3版) 出版社:清华大学出版社 管理理论与实务(第3版) 内容简介 本书适应我国经济社会发展对创新型人才的客观需要而编写,致力于传承与...
研究生/本科/专科教材

项目管理概论pdf

项目管理概论 作者:赖一飞 项目管理概论 出版社:清华大学出版社 项目管理概论 内容简介 本书吸收了国内外项目管理的最新成果,密切联系实践,内容新颖,体系完整,具有较强的针对性、实用性和可操作性。
研究生/本科/专科教材

计算机组成原理pdf

计算机组成原理 内容简介 《计算机科学丛书:计算机组成原理》其分三部分。第一部分从计算机组成和结构的有关概念、计算机的发展历程及存储程序计算机开始讲起,介绍了计算机系统的组成和体系结构的基本概念,然后...
研究生/本科/专科教材

计算机组成原理(第2版)pdf

本书突出介绍计算机组成的一般原理,不结合任何具体机型,采用自顶向下的分析方法,详述计算机组成原理,使读者更容易形成计算机的整体概念。本书在编写思路上充分体现“以学生为中心”的教学理...
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:7   其中:访客  7   博主  0
    • 911511311
      911511311 9

      很好

      • 妳不懂我
        妳不懂我 9

        挺好

        • kdjfkdkdf
          kdjfkdkdf 9

          很好 学习

          • 秋刀鱼秋刀鱼
            秋刀鱼秋刀鱼 9

            顶好

            • 0x指纹
              0x指纹 9

              下载

              • 学习
                学习 0

                好好学习,天天向上,谢谢楼上分享

                • quezhen
                  quezhen 9

                  看看