书籍详情
《现代x汇编语言程序设计原书第2版丹尼尔卡斯沃姆计算机科学丛书黑皮书》[20M]百度网盘|亲测有效|pdf下载
  • 现代x汇编语言程序设计原书第2版丹尼尔卡斯沃姆计算机科学丛书黑皮书

  • 出版社:机械工业出版社官方旗舰店
  • 热度:9759
  • 上架时间:2024-06-30 09:08:33
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

baecf198635367d9.jpgeef3fc2728ae9c53.jpg
内容介绍

  内容简介

本书全面更新到x86-64,主要面向软件开发人员,旨在通过实用的案例帮助读者快速理解x86-64汇编语言程序设计的概念并掌握编程方法。书中首先介绍x86-64平台,包括Core体系结构、数据类型、寄存器、内存寻址模式和基本指令集等;然后讨论A*、A*2和A*-512,包括寄存器集、指令集和增强功能等,并利用这些指令集编写性能增强函数和算法;zui后讨论提高程序性能的编码策略及技巧。此外,书中包含大量可免费下载的源代码,便于读者实践。




目录

  目录

  出版者的话
译者序
前言
关于作者
关于技术评审专家
*1章 x86-64 Core体系结构 1
1.1 历史回顾 1
1.2 数据类型 3
1.2.1 基本数据类型 3
1.2.2 数值数据类型 3
1.2.3 SIMD数据类型 4
1.2.4 其他数据类型 5
1.3 内部体系结构 5
1.3.1 通用寄存器 6
1.3.2 RFLAGS寄存器 7
1.3.3 指令指针 8
1.3.4 指令操作数 9
1.3.5 内存寻址 10
1.4 x86-64与x86-32编程的区别 11
1.4.1 无效指令 12
1.4.2 不推荐的指令 13
1.5 指令集概述 13
1.6 本章小结 15
*2章 x86-64 Core程序设计:*1部分 17
2.1 简单的整数算术运算 17
2.1.1 加法和减法 18
2.1.2 逻辑运算 20
2.1.3 移位运算 22
2.2 *级整数算术运算 25
2.2.1 乘法和除法 25
2.2.2 使用混合类型的运算 28
2.3 内存寻址和条件代码 33
2.3.1 内存寻址模式 33
2.3.2 条件代码 37
2.4 本章小结 40
第3章 x86-64 Core程序设计:*2部分 42
3.1 数组 42
3.1.1 一维数组 42
3.1.2 二维数组 48
3.2 结构 56
3.3 字符串 58
3.3.1 字符计数 58
3.3.2 字符串拼接 61
3.3.3 比较数组 65
3.3.4 数组反转 68
3.4 本章小结 71
第4章 A*指令集 72
4.1 A*概述 72
4.2 SIMD编程概念 73
4.3 环绕与饱和算术运算 74
4.4 A*执行环境 75
4.4.1 寄存器集 75
4.4.2 数据类型 76
4.4.3 指令语法 76
4.5 A*标量浮点数 77
4.5.1 浮点数编程概念 78
4.5.2 标量浮点寄存器集 80
4.5.3 控制状态寄存器 80
4.5.4 指令集概述 81
4.6 A*打包浮点值 82
4.7 A*打包整数 85
4.8 x86-A*和x86-SSE之间的区别 87
4.9 本章小结 88
第5章 A*程序设计:标量浮点数 90
5.1 标量浮点算术运算 90
5.1.1 单精度浮点数运算 90
5.1.2 双精度浮点数运算 93
5.2 标量浮点值的比较和转换 97
5.2.1 浮点值比较 97
5.2.2 浮点值转换 106
5.3 标量浮点数组和矩阵 111
5.3.1 浮点数组 111
5.3.2 浮点矩阵 114
5.4 调用约定 118
5.4.1 基本堆栈帧 118
5.4.2 使用非易失性通用寄存器 122
5.4.3 使用非易失性XMM寄存器 126
5.4.4 函数序言和函数结语的宏 131
5.5 本章小结 136
第6章 A*程序设计:打包浮点数 137
6.1 打包浮点算术运算 137
6.2 打包浮点值比较 142
6.3 打包浮点值转换 146
6.4 打包浮点数组 150
6.4.1 打包浮点平方根 150
6.4.2 打包浮点数组的*小值和*大值 154
6.4.3 打包浮点*小二乘法 158
6.5 打包浮点矩阵 163
6.5.1 矩阵转置 163
6.5.2 矩阵乘法 170
6.6 本章小结 175
第7章 A*程序设计:打包整数 176
7.1 打包整数加法和减法运算 176
7.2 打包整数移位 181
7.3 打包整数乘法 184
7.4 打包整数图像处理 189
7.4.1 像素的*小值和*大值 189
7.4.2 像素平均强度 196
7.4.3 像素转换 200
7.4.4 图像直方图 206
7.4.5 图像阈值化 213
7.5 本章小结 223
第8章 A*2 224
8.1 A*2执行环境 224
8.2 A*2打包浮点数 224
8.3 A*2打包整数 226
8.4 x86指令集扩展 226
8.4.1 半精度浮点数 227
8.4.2 乘法加法融合 227
8.4.3 通用寄存器指令集扩展 228
8.5 本章小结 229
第9章 A*2程序设计:打包浮点数 230
9.1 打包浮点算术运算 230
9.2 打包浮点数组 236
9.2.1 简单计算 236
9.2.2 列均值 241
9.2.3 相关系数 246
9.3 矩阵乘法和转置 252
9.4 矩阵求逆 258
9.5 混合和排列指令 269
9.6 数据收集指令 273
9.7 本章小结 279
*10章 A*2程序设计:打包整数 280
10.1 打包整数基础 280
10.1.1 基本算术运算 280
10.1.2 打包和解包 284
10.1.3 大小提升 289
10.2 打包整数图像处理 293
10.2.1 像素剪裁 293
10.2.2 RGB像素的*小值和*大值 298
10.2.3 RGB图像到灰度图像的转换 304
10.3 本章小结 310
*11章 A*2程序设计:扩展指令集 312
11.1 FMA程序设计 312
11.1.1 卷积 312
11.1.2 标量FMA 314
11.1.3 打包FMA 322
11.2 通用寄存器指令 329
11.2.1 不影响标志位的乘法和移位 329
11.2.2 增强型位操作 333
11.3 半精度浮点转换 336
11.4 本章小结 339
*12章 A*-512 340
12.1 A*-512概述 340
12.2 A*-512执行环境 341
12.2.1 寄存器集 341
12.2.2 数据类型 342
12.2.3 指令语法 342
12.3 指令集概述 345
12.3.1 A*512F 345
12.3.2 A*512CD 346
12.3.3 A*512BW 347
12.3.4 A*512DQ 347
12.3.5 操作掩码寄存器 348
12.4 本章小结 348
*13章 A*-512程序设计:浮点数 349
13.1 标量浮点数 349
13.1.1 合并屏蔽 349
13.1.2 零屏蔽 352
13.1.3 指令级舍入 355
13.2 打包浮点数 358
13.2.1 打包浮点数算术运算 358
13.2.2 打包浮点值比较 365
13.2.3 打包浮点列均值 369
13.2.4 向量叉积 376
13.2.5 矩阵向量乘法 384
13.2.6 卷积 392
13.3 本章小结 395
*14章 A*-512程序设计:打包整数 396
14.1 基本算术运算 396
14.2 图像处理 400
14.2.1 像素转换 401
14.2.2 图像阈值化 406
14.2.3 图像统计 411
14.2.4 RGB到灰度的转换 420
14.3 本章小结 426
*15章 优化策略和技术 427
15.1 处理器微体系结构 427
15.1.1 处理器体系结构概述 427
15.1.2 微体系结构流水线功能 428
15.1.3 执行引擎 430
15.2 优化汇编语言代码 431
15.2.1 基本技术 432
15.2.2 浮点算术运算 433
15.2.3 程序分支 433
15.2.4 数据对齐 435
15.2.5 SIMD技术 435
15.3 本章小结 436
*16章 *级程序设计 437
16.1 CPUID指令 437
16.2 非时态内存存储 450
16.3 数据预获取 454
16.4 多线程 461
16.5 本章小结 471
附录A 472