现代x86汇编语言程序设计 x86汇编语言编程的软件开发教程书籍 介绍x86汇编语言编写可被高级语言调用的函数PDF电子书下载
- 电子书积分:15 积分如何计算积分?
- 作 者:(美)丹尼尔·卡斯沃姆著;张银奎,罗冰,宋维,张佩等译
- 出 版 社:北京:机械工业出版社
- 出版年份:2016
- ISBN:9787111542780
- 页数:477 页
第1章 x86-32核心架构 1
1.1 简史 1
1.2 数据类型 3
1.2.1 基本数据类型 3
1.2.2 数值数据类型 4
1.2.3 组合数据类型 5
1.2.4 其他数据类型 6
1.3 内部架构 6
1.3.1 段寄存器 7
1.3.2 通用寄存器 7
1.3.3 EFLAGS寄存器 8
1.3.4 指令指针 9
1.3.5 指令操作数 9
1.3.6 内存寻址模式 10
1.4 指令集浏览 11
1.4.1 数据传输 13
1.4.2 二进制算术 13
1.4.3 数据比较 14
1.4.4 数据转换 14
1.4.5 逻辑运算 14
1.4.6 旋转和移位 15
1.4.7 字节设置和二进制位串 15
1.4.8 串 16
1.4.9 标志操纵 16
1.4.10 控制转移 17
1.4.11 其他指令 17
1.5 总结 17
第2章 x86-32核心编程 18
2.1 开始 18
2.1.1 第一个汇编语言函数 19
2.1.2 整数乘法和除法 22
2.2 x86-32编程基础 24
2.2.1 调用约定 25
2.2.2 内存寻址模式 28
2.2.3 整数加法 31
2.2.4 条件码 34
2.3 数组 38
2.3.1 一维数组 39
2.3.2 二维数组 42
2.4 结构体 47
2.4.1 简单结构体 47
2.4.2 动态结构体创建 50
2.5 字符串 52
2.5.1 字符计数 52
2.5.2 字符串拼接 54
2.5.3 比较数组 57
2.5.4 反转数组 60
2.6 总结 62
第3章 x87浮点单元 63
3.1 x87FPU核心架构 63
3.1.1 数据寄存器 63
3.1.2 x87 FPU专用寄存器 64
3.1.3 x87 FPU操作数和编码 65
3.2 x87 FPU指令集 68
3.2.1 数据传输 68
3.2.2 基本运算 69
3.2.3 数据比较 70
3.2.4 超越函数 71
3.2.5 常量 71
3.2.6 控制 72
3.3 总结 72
第4章 x87 FPU编程 73
4.1 x87 FPU编程基础 73
4.1.1 简单计算 73
4.1.2 浮点比较 76
4.2 x87 FPU高级编程 79
4.2.1 浮点数组 79
4.2.2 超越指令(超越函数指令) 84
4.2.3 栈的高级应用 87
4.3 总结 92
第5章 MMX技术 93
5.1 SIMD处理概念 93
5.2 回绕和饱和运算 94
5.3 MMX执行环境 95
5.4 MMX指令集 96
5.4.1 数据传输 97
5.4.2 算术运算 97
5.4.3 比较 98
5.4.4 转换 99
5.4.5 逻辑和位移 99
5.4.6 解组和重排 99
5.4.7 插入和提取 100
5.4.8 状态和缓存控制 100
5.5 总结 100
第6章 MMX技术编程 101
6.1 MMX编程基础 101
6.1.1 组合整型加法 102
6.1.2 组合整型移位 108
6.1.3 组合整型乘法 111
6.2 MMX高级编程 113
6.2.1 整数数组处理 114
6.2.2 使用MMX和x87FPU 120
6.3 总结 125
第7章 流式SIMD扩展 126
7.1 x86-SSE概览 126
7.2 x86-SSE执行环境 127
7.2.1 x86-SSE寄存器组 127
7.2.2 x86-SSE数据类型 128
7.2.3 x86-SSE的控制-状态寄存器 128
7.3 x86-SSE处理技术 129
7.4 x86-SSE指令集概览 132
7.4.1 标量浮点数据传输 133
7.4.2 标量浮点算术运算 133
7.4.3 标量浮点比较 134
7.4.4 标量浮点转换 134
7.4.5 组合浮点数据传输 135
7.4.6 组合浮点算术运算 135
7.4.7 组合浮点比较 136
7.4.8 组合浮点转换 136
7.4.9 组合浮点重排和解组 137
7.4.10 组合浮点插入和提取 137
7.4.11 组合浮点混合 137
7.4.12 组合浮点逻辑 138
7.4.13 组合整数扩展 138
7.4.14 组合整数数据传输 138
7.4.15 组合整数算术运算 139
7.4.16 组合整数比较 139
7.4.17 组合整数转换 139
7.4.18 组合整数重排和解组 140
7.4.19 组合整数插入和提取 140
7.4.20 组合整数混合 141
7.4.21 组合整数移位 141
7.4.22 文本字符串处理 141
7.4.23 非临时数据传输和缓存控制 142
7.4.24 其他 142
7.5 总结 143
第8章 x86-SSE编程——标量浮点 144
8.1 标量浮点运算基础 144
8.1.1 标量浮点算术运算 144
8.1.2 标量浮点数的比较 148
8.1.3 标量浮点数的类型转换 151
8.2 高级标量浮点编程 157
8.2.1 用标量浮点指令计算球体表面积和体积 157
8.2.2 用标量浮点指令计算平行四边形面积和对角线长度 159
8.3 总结 165
第9章 x86-SSE编程——组合浮点 166
9.1 组合浮点运算基础 166
9.1.1 组合浮点算术运算 167
9.1.2 组合浮点数的比较 171
9.1.3 组合浮点数的类型转换 175
9.2 高级组合浮点编程 178
9.2.1 组合浮点数最小二乘法 178
9.2.2 用组合浮点数进行4×4矩阵的计算 183
9.3 总结 192
第10章 x86-SSE编程——组合整数 193
10.1 组合整数基础 193
10.2 高级组合整数编程 197
10.2.1 组合整数直方图 197
10.2.2 组合整数阈值分割 203
10.3 总结 214
第11章 x86-SSE编程——字符串 215
11.1 字符串基础知识 215
11.2 字符串编程 221
11.2.1 计算字符串长度 221
11.2.2 字符替换 224
11.3 总结 231
第12章 AVX——高级向量扩展 232
12.1 x86-AVX概述 232
12.2 x86-AVX执行环境 233
12.2.1 x86-AVX寄存器组 233
12.2.2 x86-AVX数据类型 233
12.2.3 x86-AVX指令语法 234
12.3 x86-AVX功能扩展 235
12.4 x86-AVX指令集概述 236
12.4.1 升级版的x86-SSE指令 236
12.4.2 新指令 239
12.4.3 功能扩展指令 242
12.5 总结 245
第13章 x86-AVX标量浮点编程 246
13.1 编程基础 246
13.1.1 标量浮点运算 246
13.1.2 标量浮点比较 248
13.2 高级编程 253
13.2.1 一元二次方程的根 253
13.2.2 球坐标系 258
13.3 总结 263
第14章 x86-AVX组合浮点编程 264
14.1 编程基础 264
14.1.1 组合浮点运算 265
14.1.2 组合浮点比较 269
14.2 高级编程 272
14.2.1 相关系数 272
14.2.2 矩阵列均值 278
14.3 总结 283
第15章 x86-AVX组合整型编程 284
15.1 组合整型基础 284
15.1.1 组合整型运算 284
15.1.2 组合整数解组操作 288
15.2 高级编程 292
15.2.1 图像像素裁剪 293
15.2.2 图像阈值二分法 299
15.3 总结 307
第16章 x86-AVX编程——新指令 308
16.1 检测处理器特性(CPUID) 308
16.2 数据操作指令 314
16.2.1 数据广播 314
16.2.2 数据混合 317
16.2.3 数据排列 322
16.2.4 数据收集 326
16.3 融合乘加编程 331
16.4 通用寄存器指令 339
16.4.1 不影响标志位的乘法和移位操作 339
16.4.2 增强的位操作 342
16.5 总结 345
第17章 x86-64核心架构 346
17.1 内部架构 346
17.1.1 通用寄存器 347
17.1.2 RFLAGS寄存器 348
17.1.3 指令指针寄存器 348
17.1.4 指令操作数 348
17.1.5 内存寻址模式 349
17.2 x86-64和x86-32的区别 350
17.3 指令集概览 351
17.3.1 基本指令使用 351
17.3.2 无效指令 352
17.3.3 新指令 352
17.3.4 不鼓励使用的资源 353
17.4 总结 353
第18章 x86-64核心编程 354
18.1 x86-64编程基础 354
18.1.1 整数算术运算 355
18.1.2 内存寻址 359
18.1.3 整型操作数 362
18.1.4 浮点数运算 365
18.2 x86-64调用约定 369
18.2.1 基本栈帧 369
18.2.2 使用非易变寄存器 372
18.2.3 使用非易变类型XMM寄存器 376
18.2.4 简化序言和结语的宏 381
18.3 x86-64数组和字符串 386
18.3.1 二维数组 386
18.3.2 字符串 390
18.4 总结 393
第19章 x86-64单指令多数据流架构 394
19.1 x86-SSE-64执行环境 394
19.1.1 x86-SSE-64寄存器组 394
19.1.2 x86-SSE-64数据类型 394
19.1.3 x86-SSE-64指令集概述 395
19.2 x86-AVX执行环境 395
19.2.1 x86-AVX-64寄存器组 395
19.2.2 x86-AVX-64数据类型 396
19.2.3 x86-AVX-64指令集概述 396
19.3 总结 396
第20章 x86-64单指令多数据流编程 397
20.1 x86-SSE-64编程 397
20.1.1 直方图绘制 397
20.1.2 图像转换 402
20.1.3 向量数组 410
20.2 x86-AVX-64编程 417
20.2.1 椭圆体计算 417
20.2.2 RGB图像处理 421
20.2.3 矩阵求逆 426
20.2.4 其他指令 437
20.3 总结 441
第21章 高级主题和优化技巧 442
21.1 处理器微架构 442
21.1.1 多核处理器概述 442
21.1.2 微架构流水线功能 443
21.1.3 执行引擎 445
21.2 优化汇编语言代码 446
21.2.1 基本优化 446
21.2.2 浮点算术 447
21.2.3 程序分支 447
21.2.4 数据对齐 448
21.2.5 SIMD技巧 449
21.3 总结 449
第22章 高级主题编程 450
22.1 无时态内存存储 450
22.2 数据预取 455
22.3 总结 463
索引 464
- 《莼江曲谱 2 中国昆曲博物馆藏稀见昆剧手抄曲谱汇编之一》郭腊梅主编;孙伊婷副主编;孙文明,孙伊婷编委;中国昆曲博物馆编 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《设计十六日 国内外美术院校报考攻略》沈海泯著 2018
- 《莼江曲谱 1 中国昆曲博物馆藏稀见昆剧手抄曲谱汇编之一》郭腊梅主编;孙伊婷副主编;孙文明,孙伊婷编委;中国昆曲博物馆编 2018
- 《计算机辅助平面设计》吴轶博主编 2019
- 《高校转型发展系列教材 素描基础与设计》施猛责任编辑;(中国)魏伏一,徐红 2019
- 《景观艺术设计》林春水,马俊 2019
- 《近代体育游戏教育史料汇编 第1辑 1》王强主编 2016
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《近代体育游戏教育史料汇编 第2辑 2》王强主编 2016
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017
- 《新工业时代 世界级工业家张毓强和他的“新石头记”》秦朔 2019
- 《智能制造高技能人才培养规划丛书 ABB工业机器人虚拟仿真教程》(中国)工控帮教研组 2019
- 《AutoCAD机械设计实例精解 2019中文版》北京兆迪科技有限公司编著 2019