展开全部

主编推荐语

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

内容简介

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

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

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

目录

  • 版权信息
  • 内容提要
  • 译者序
  • 推荐序
  • 前言
  • 致谢
  • 第一部分 计算机的组成结构
  • 第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 自测题参考答案
展开全部

评分及书评

尚无评分
目前还没人评分

出版方

机械工业出版社

机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。