64位汇编语言的编程艺术(计算机科学丛书)

64位汇编语言的编程艺术(计算机科学丛书)

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

深入介绍×86-64处理器的指令集(使用MASM)。

内容简介

本书源于作者的经典书籍The Art of Assembly Language,从32位汇编语言升级为64位汇编语言,基于Microsoft宏汇编程序(MASM)讲解x86-64 CPU上汇编语言的编程艺术。

本书从计算机的组成结构开始介绍,包括计算机数据表示和运算,以及内存的访问和组织等。之后详细讲解汇编语言程序设计,涉及过程和算术运算的相关知识,再通过低级控制结构过渡到高级主题,如表查找和位操作。

此外,还探索了x87浮点单元、SIMD指令,以及MASM的宏工具。书中的程序清单均可免费下载,供读者即学即用。本书适合计算机专业的学生、相关领域的从业人员以及对汇编语言感兴趣的技术人员阅读。

作者简介

作者兰德尔·海德,嵌入式软件工程师,曾在医疗、核能、消费电子和娱乐行业工作。他在大学教授汇编语言编程超过10年,多年来为嵌入式和商业应用程序编写了数十万行汇编代码。著有The Art of Assembly Language和Write Great Code系列书籍,均由No Starch出版社出版。

章节目录

版权信息

内容提要

译者序

推荐序

前言

致谢

第一部分 计算机的组成结构

第1章 汇编语言的第一个程序

1.1 先决条件

1.2 在计算机上安装MASM

1.3 在计算机上安装文本编辑器

1.4 MASM程序的结构剖析

1.5 运行第一个MASM程序

1.6 运行第一个MASM和C++的混合程序

1.7 英特尔x86-64 CPU系列简介

1.8 内存子系统

1.9 在MASM中声明内存变量

1.10 在MASM中声明(命名)常量

1.11 基本的机器指令

1.12 调用C/C++过程

1.13 “Hello,world!”程序

1.14 在汇编语言中返回函数结果

1.15 自动化构建过程

1.16 微软ABI注释

1.17 拓展阅读资料

1.18 自测题

第2章 计算机数据表示和运算

2.1 数制系统

2.2 十六进制数制系统

2.3 关于数字与表示的注释

2.4 数据组织

2.5 位的逻辑运算

2.6 二进制数和位串的逻辑运算

2.7 有符号数和无符号数

2.8 符号扩展和零扩展

2.9 符号缩减和饱和法

2.10 简要回顾:控制转移指令概述

2.11 移位和循环移位

2.12 位字段和打包数据

2.13 IEEE浮点数格式

2.14 BCD表示法

2.15 字符

2.16 Unicode字符集

2.17 MASM对Unicode的支持

2.18 拓展阅读资料

2.19 自测题

第3章 内存的访问和组织

3.1 运行时的内存组织

3.2 MASM如何为变量分配内存

3.3 标签声明

3.4 小端模式和大端模式的数据组织方式

3.5 内存访问

3.6 MASM对数据对齐的支持

3.7 x86-64的寻址模式

3.8 地址表达式

3.9 栈段以及push和pop指令

3.10 栈

3.11 其他push和pop指令

3.12 不通过弹出栈从栈中移除数据

3.13 不通过弹出栈访问压入栈的数据

3.14 微软ABI注释

3.15 拓展阅读资料

3.16 自测题

第4章 常量、变量和数据类型

4.1 imul指令

4.2 inc和dec指令

4.3 MASM常量声明

4.4 MASM typedef语句

4.5 类型强制

4.6 指针数据类型

4.7 复合数据类型

4.8 字符串

4.9 数组

4.10 多维数组

4.11 记录/结构

4.12 联合

4.13 微软ABI注释

4.14 拓展阅读资料

4.15 自测题

第二部分 汇编语言程序设计

第5章 过程

5.1 实现过程

5.2 保存机器的状态(一)

5.3 过程和栈

5.4 局部(自动)变量

5.5 参数

5.6 调用约定和微软ABI

5.7 微软ABI和微软调用约定

5.8 函数和函数的返回结果

5.9 递归

5.10 过程指针

5.11 过程参数

5.12 保存机器的状态(二)

5.13 微软ABI注释

5.14 拓展阅读资料

5.15 自测题

第6章 算术运算

6.1 x86-64整数算术指令

6.2 算术表达式

6.3 逻辑(布尔)表达式

6.4 机器和算术运算的习惯用法

6.5 浮点算术运算

6.6 将浮点数表达式转换为汇编语言

6.7 SSE浮点数算术运算

6.8 拓展阅读资料

6.9 自测题

第7章 低级控制结构

7.1 语句标签

7.2 无条件控制转移

7.3 条件跳转指令

7.4 “蹦床”

7.5 条件移动指令

7.6 使用汇编语言实现通用控制结构

7.7 状态机和间接跳转

7.8 循环结构

7.9 循环结构的性能改进

7.10 拓展阅读资料

7.11 自测题

第8章 高级算术运算

8.1 扩展精度运算

8.2 对不同大小的操作数进行运算

8.3 十进制算术运算

8.4 拓展阅读资料

8.5 自测题

第9章 数值转换

9.1 将数值转换为字符串

9.2 字符串到数值的转换例程

9.3 拓展阅读资料

9.4 自测题

第10章 表查找

10.1 表

10.2 拓展阅读资料

10.3 自测题

第11章 SIMD指令

11.1 SSE/AVX体系结构

11.2 流数据类型

11.3 使用cpuid区分指令集

11.4 完整的段语法和段对齐

11.5 SSE、AVX和AVX2内存操作数对齐

11.6 SIMD数据移动指令

11.7 混排和解包指令

11.8 SIMD算术和逻辑运算

11.9 SIMD逻辑(按位操作)指令

11.10 SIMD整数算术指令

11.11 SIMD浮点算术运算

11.12 SIMD浮点比较指令

11.13 浮点转换指令

11.14 对齐SIMD内存访问

11.15 对齐字、双字和四字对象的地址

11.16 使用相同值的几个副本填充XMM寄存器

11.17 将一些常用常量加载到XMM和YMM寄存器中

11.18 设置、清除、反转和测试SSE寄存器中的单个位

11.19 使用单个递增索引来处理两个向量

11.20 将两个地址对齐到同一个内存边界

11.21 处理长度不是SSE/AVX寄存器大小倍数的数据块

11.22 CPU功能的动态测试

11.23 MASM include伪指令

11.24 其他SIMD指令

11.25 拓展阅读资料

11.26 自测题

第12章 位操作

12.1 什么是位数据

12.2 操作位的指令

12.3 作为位累加器的进位标志位

12.4 位串的打包和解包

12.5 提取位和创建位掩码的BMI1指令

12.6 合并位集和分配位串

12.7 使用BMI2指令合并和分配位串

12.8 打包的位串数组

12.9 查找位

12.10 统计位的个数

12.11 反转位串

12.12 合并位串

12.13 提取位串

12.14 搜索位模式

12.15 拓展阅读资料

12.16 自测题

第13章 宏和MASM编译时语言

13.1 编译时语言的概述

13.2 echo和“.err”伪指令

13.3 编译时常量和变量

13.4 编译时表达式和运算符

13.5 条件汇编(编译时决策)

13.6 重复汇编(编译时循环)

13.7 宏(编译时过程)

13.8 标准宏

13.9 宏参数

13.10 宏中的局部符号

13.11 exitm伪指令

13.12 MASM宏函数语法

13.13 宏作为编译时过程和函数

13.14 编写编译时“程序”

13.15 模拟高级语言的过程调用

13.16 调用宏

13.17 高级宏参数解析

13.18 使用宏编写宏

13.19 编译时程序的性能

13.20 拓展阅读资料

13.21 自测题

第14章 串指令

14.1 x86-64串指令

14.2 x86-64串指令的性能

14.3 SIMD串指令

14.4 对齐和MMU页

14.5 拓展阅读资料

14.6 自测题

第15章 管理复杂的项目

15.1 include伪指令

15.2 忽略重复包含的操作

15.3 汇编单元和外部伪指令

15.4 MASM中的头文件

15.5 externdef伪指令

15.6 分离式编译

15.7 makefile简介

15.8 微软链接器和库代码

15.9 对象文件和库文件对程序大小的影响

15.10 拓展阅读资料

15.11 自测题

第16章 独立的汇编语言程序

16.1 独立的“Hello,world!”程序

16.2 头文件和Windows接口

16.3 Win32 API和Windows ABI

16.4 构建独立的控制台应用程序

16.5 构建独立的GUI应用程序

16.6 Windows API的MessageBox函数概述

16.7 Windows文件I/O

16.8 Windows应用程序

16.9 拓展阅读资料

16.10 自测题

附录A 安装和使用Visual Studio

附录B 自测题参考答案

64位汇编语言的编程艺术(计算机科学丛书)是2023年由机械工业出版社出版,作者[美] 兰德尔·海德。

得书感谢您对《64位汇编语言的编程艺术(计算机科学丛书)》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
计算机图形学编程(使用OpenGL和C++)(第2版) 电子书
本书以OpenGL和C++作为工具,介绍计算机图形学编程的相关内容。
自制编程语言 电子书
适读人群 :适合对编译原理及语言处理器设计有兴趣的读者以及正在学习相关课程的大中专院校学生。 前百度高 级工程师、专业书《操作系统真相还原》的作者的又一力作 业界专家联名推荐 滴滴系统部技术高 级总监于晓声 阿里巴巴蚂蚁金服技术专家肖金亮 百度资 深运维工程师陈晓聪 360企业安全集团政企云事业部技术总监冯顾 ACFUN高 级运维总监陆景玉 Mobvista运维总监黄梦溪 手把手地教读者从零去实现一门语言,从原理到实践事无巨细 每一步都有实际的代码和详尽的原理说明,读者可以很轻松地掌握各个实现细节 实现脚本语言重要的垃圾回收(GC)、虚拟机(VM)和线程等黑技术都在本书一一呈现
Python编程基础 电子书
全面介绍Python编程基础与实用技术。
Python编程基础 电子书
介绍了Python编程基础及其相关知识的应用,解决部分实际问题。
我的Python世界:玩Minecraft我的世界学Python编程 电子书
游戏化学习已成为趋势,而软硬件结合让你真正拥有“万物皆可造”的感觉。