书籍详情
x64汇编语言:从新手到AVX专家
作者:[比] 乔·范·霍伊 著,贾玉彬,王昱波 译
出版社:清华大学出版社
出版时间:2022-01-01
ISBN:9787302595465
定价:¥88.00
购买这本书可以去
内容简介
从简单和基本的程序开始,一直讲到AVX编程。读完《x64汇编语言:从新手到AVX专家》,你将能编写和阅读汇编代码、混合使用汇编语言和高级语言、了解什么是AVX等。《x64汇编语言:从新手到AVX专家》代码力求简单,不涉及错误检查,没有图形用户界面,也没有多余的描述,以免分散你的注意力。理论知识也是浓缩的,只涉及少量二进制知识以及有限的逻辑运算符和线性代数知识,不涉及浮点转换方面的内容,汇编代码都是完整程序,你可在自己的计算机上测试、使用、修改和删除这些代码。《x64汇编语言:从新手到AVX专家》还将展示可使用哪些工具、如何使用它们以及这些工具的潜在问题。《x64汇编语言:从新手到AVX专家》并未事无巨细地列出全部汇编指令,而是重点列出主要知识点。通读《x64汇编语言:从新手到AVX专家》,你将扎实掌握基础知识,你可在此基础上更深入地研究自己感兴趣的主题。Linux是学习汇编语言的非常简单平台,因此《x64汇编语言:从新手到AVX专家》大部分内容都是关于在Linux上进行汇编,但最后也提供了一些章节来帮助你在Windows上进行汇编。一旦掌握了Linux汇编,就可更轻松地进行Windows汇编。如果你没有任何编程经验,请暂时把《x64汇编语言:从新手到AVX专家》放在一边,先学习高级语言(例如C语言)的一些编程基础知识。了解CPU和内存的工作原理理解计算机和操作系统如何协同工作了解高级语言编译器如何生成机器语言j并使用这些知识编写更高效的代码更好地分析程序中的错误让程序正常工作,这一部分十分有趣调查恶意软件并采取必要的行动加以预防《x64汇编语言:从新手到AVX专家》面向高语言程序员,以及分析恶意软件的系统工程师和安全工程师。读者需要熟悉Linux、Windows、虚拟化和高级编程语言(C或C++)。
作者简介
Jo Van Hoey,拥有40年的IT行业从业经验,包括各种职能部门、多家IT公司和各种计算平台。他最近从IBM大型机软件客户经理职位上退休。出于对IT安全的兴趣,Jo长期深入研究汇编语言,因为汇编语言知识是保护IT基础设施抵御攻击和恶意软件的重要基础。
目录
第1章 你的第一个程序
1.1 编辑、汇编、链接和运行(或调试)
1.2 汇编程序的结构
1.2.1.data段
1.2.2.bss段
1.2.3.txt段
1.3 小结
第2章 二进制数、十六进制数和寄存器
2.1 二进制简短课程
2.1.1 整数
2.1.2 浮点数
2.2 寄存器简短课程
2.2.1 通用寄存器
2.2.2 指令指针寄存器(rip)
2.2.3 标志寄存器(Flag Register)
2.2.4 xmm和ymm寄存器
2.3 小结
第3章 用调试器进行程序分析:GDB
3.1 开始调试
3.2 继续进步
3.3 其他GDB命令
3.4 稍加改进的hello,world程序
3.5 小结
第4章 你的下一个程序:AliveandKicking
4.1 alive程序分析
4.2 打印
4.3 小结
第5章 汇编是基于逻辑的
5.1 NOT
5.2 0R
5.3 XOR
5.4 AND
5.5 小结
第6章 数据显示调试器
6.1 使用DDD
6.2 小结
第7章 跳转和循环
7.1 安装SimpleASM
7.2 使用SASM
7.3 小结
第8章 内存
8.1 探索内存
8.2 小结
第9章 整数运算
9.1 从整数算术开始
9.2 分析算术指令
9.3 小结
第10章 堆栈
10.1 理解堆栈
10.2 跟踪堆栈
10.3 小结
第11章 浮点运算
11.1 单精度与双精度
11.2 浮点数编程
11.3 小结
第12章 函数
12.1 编写一个简单的函数
12.2 更多函数
12.3 小结
第13章 栈对齐和栈帧
13.1 栈对齐
13.2 有关栈帧的更多信息
13.3 小结
第14章 外部函数
14.1 编译并链接函数
14.2 扩展makeme
14.3 小结
第15章 调用约定
15.1 函数参数
15.2 栈布局
15.3 保留寄存器
15.4 小结
第16章 位运算
16.1 基础
16.2 算术
16.3 小结
第17章 位操作
17.1 修改位的其他方法
17.2 位标志变量
17.3 小结
第18章 宏
18.1 编写宏
18.2 使用objdump
18.3 小结
第19章 控制台I/O
19.1 使用I/O
19.2 处理溢出
19.3 小结
第20章 文件I/O
20.1 使用syscall
20.2 文件处理
20.3 条件汇编
20.4 文件操作指令
20.5 小结
第21章 命令行
21.1 访问命令行参数
21.2 调试命令行
21.3 小结
第22章 从C到汇编
22.1 编写C源文件
22.2 编写汇编代码
22.3 小结
第23章 内联汇编
23.1 基本内联汇编
23.2 扩展内联汇编
23.3 小结
……
第24章 字符串
第25章 cpuid
第26章 SIMD
第27章 小心mxcsr
第28章 SSE对齐
第29章 SSE打包整数
第30章 SSE字符串操作
第31章 搜索字符
第32章 比较字符串
第33章 重排
第34章 SSE字符串掩码
第35章 AVX
第36章 AVX矩阵运算
第37章 矩阵转置
第38章 性能调优
第39章 你好,Windows的世界
第40章 使用WindowsAPI
第41章 Windows中的函数
第42章 可变参数函数
第43章 Windows文件
后记
1.1 编辑、汇编、链接和运行(或调试)
1.2 汇编程序的结构
1.2.1.data段
1.2.2.bss段
1.2.3.txt段
1.3 小结
第2章 二进制数、十六进制数和寄存器
2.1 二进制简短课程
2.1.1 整数
2.1.2 浮点数
2.2 寄存器简短课程
2.2.1 通用寄存器
2.2.2 指令指针寄存器(rip)
2.2.3 标志寄存器(Flag Register)
2.2.4 xmm和ymm寄存器
2.3 小结
第3章 用调试器进行程序分析:GDB
3.1 开始调试
3.2 继续进步
3.3 其他GDB命令
3.4 稍加改进的hello,world程序
3.5 小结
第4章 你的下一个程序:AliveandKicking
4.1 alive程序分析
4.2 打印
4.3 小结
第5章 汇编是基于逻辑的
5.1 NOT
5.2 0R
5.3 XOR
5.4 AND
5.5 小结
第6章 数据显示调试器
6.1 使用DDD
6.2 小结
第7章 跳转和循环
7.1 安装SimpleASM
7.2 使用SASM
7.3 小结
第8章 内存
8.1 探索内存
8.2 小结
第9章 整数运算
9.1 从整数算术开始
9.2 分析算术指令
9.3 小结
第10章 堆栈
10.1 理解堆栈
10.2 跟踪堆栈
10.3 小结
第11章 浮点运算
11.1 单精度与双精度
11.2 浮点数编程
11.3 小结
第12章 函数
12.1 编写一个简单的函数
12.2 更多函数
12.3 小结
第13章 栈对齐和栈帧
13.1 栈对齐
13.2 有关栈帧的更多信息
13.3 小结
第14章 外部函数
14.1 编译并链接函数
14.2 扩展makeme
14.3 小结
第15章 调用约定
15.1 函数参数
15.2 栈布局
15.3 保留寄存器
15.4 小结
第16章 位运算
16.1 基础
16.2 算术
16.3 小结
第17章 位操作
17.1 修改位的其他方法
17.2 位标志变量
17.3 小结
第18章 宏
18.1 编写宏
18.2 使用objdump
18.3 小结
第19章 控制台I/O
19.1 使用I/O
19.2 处理溢出
19.3 小结
第20章 文件I/O
20.1 使用syscall
20.2 文件处理
20.3 条件汇编
20.4 文件操作指令
20.5 小结
第21章 命令行
21.1 访问命令行参数
21.2 调试命令行
21.3 小结
第22章 从C到汇编
22.1 编写C源文件
22.2 编写汇编代码
22.3 小结
第23章 内联汇编
23.1 基本内联汇编
23.2 扩展内联汇编
23.3 小结
……
第24章 字符串
第25章 cpuid
第26章 SIMD
第27章 小心mxcsr
第28章 SSE对齐
第29章 SSE打包整数
第30章 SSE字符串操作
第31章 搜索字符
第32章 比较字符串
第33章 重排
第34章 SSE字符串掩码
第35章 AVX
第36章 AVX矩阵运算
第37章 矩阵转置
第38章 性能调优
第39章 你好,Windows的世界
第40章 使用WindowsAPI
第41章 Windows中的函数
第42章 可变参数函数
第43章 Windows文件
后记
猜您喜欢