×
暂无评论
图文详情
  • ISBN:9787111741268
  • 装帧:平装-胶订
  • 册数:暂无
  • 重量:暂无
  • 开本:16开
  • 页数:707
  • 出版时间:2024-01-01
  • 条形码:9787111741268 ; 978-7-111-74126-8

本书特色

本书源于作者的经典书籍The Art of Assembly Language,从32位汇编语言升级为64位汇编语言,基于Microsoft宏汇编程序(MASM)讲解x86-64 CPU上汇编语言的编程艺术,涵盖原理、方法和技巧,是系统学习和掌握汇编语言编程的有益参考。本书从计算机的组成结构开始介绍,包括计算机数据表示和运算,以及内存的访问和组织等。之后详细讲解汇编语言程序设计,涉及过程和算术运算的相关知识,再通过低级控制结构过渡到高级主题,如表查找和位操作。此外,还探索了x87浮点单元、SIMD指令,以及MASM的宏工具。

内容简介

本书源于作者的经典书籍The Art of Assembly Language,从32位汇编语言升级为64位汇编语言,基于Microsoft宏汇编程序(MASM)讲解x86-64 CPU上汇编语言的编程艺术。本书从计算机的组成结构开始介绍,包括计算机数据表示和运算,以及内存的访问和组织等。之后详细讲解汇编语言程序设计,涉及过程和算术运算的相关知识,再通过低级控制结构过渡到高级主题,如表查找和位操作。此外,还探索了x87浮点单元、SIMD指令,以及MASM的宏工具。书中的程序清单均可免费下载,供读者即学即用。本书适合计算机专业的学生、相关领域的从业人员以及对汇编语言感兴趣的技术人员阅读。<br />

目录

目  录
The Art of 64-Bit Assembly: x86-64 Machine Organization and Programming
译者序
推荐序
前言
致谢
**部分 计算机的组成结构
第1章 汇编语言的**个程序  2
1.1 先决条件  2
1.2 在计算机上安装MASM  3
1.3 在计算机上安装文本编辑器  3
1.4 MASM程序的结构剖析  3
1.5 运行**个MASM程序  4
1.6 运行**个MASM和C 的混合
程序  4
1.7 英特尔x86-64 CPU系列简介  6
1.8 内存子系统  9
1.9 在MASM中声明内存变量  10
1.9.1 将内存地址与变量关联  11
1.9.2 将数据类型与变量关联  12
1.10 在MASM中声明(命名)常量  12
1.11 基本的机器指令  13
1.11.1 mov指令  13
1.11.2 指令操作数的类型检查  14
1.11.3 add和sub指令  15
1.11.4 lea指令  15
1.11.5 call和ret指令以及MASM
过程  16
1.12 调用C/C 过程  17
1.13 “Hello, world!”程序  18
1.14 在汇编语言中返回函数结果  19
1.15 自动化构建过程  24
1.16 微软ABI注释  25
1.16.1 变量大小  25
1.16.2 寄存器的用途  28
1.16.3 栈对齐  28
1.17 拓展阅读资料  28
1.18 自测题  29
第2章 计算机数据表示和运算  31
2.1 数制系统  31
2.1.1 十进制数制系统的回顾  31
2.1.2 二进制数制系统  32
2.1.3 二进制约定  32
2.2 十六进制数制系统  33
2.3 关于数字与表示的注释  34
2.4 数据组织  36
2.4.1 位  36
2.4.2 半字节  36
2.4.3 字节  37
2.4.4 字  38
2.4.5 双字  39
2.4.6 四字和八字  39
2.5 位的逻辑运算  39
2.5.1 逻辑与运算  40
2.5.2 逻辑或运算  40
2.5.3 逻辑异或运算  40
2.5.4 逻辑非运算  41
2.6 二进制数和位串的逻辑运算  41
2.7 有符号数和无符号数  45
2.8 符号扩展和零扩展  49
2.9 符号缩减和饱和法  49
2.10 简要回顾:控制转移指令概述  50
2.10.1 jmp指令  50
2.10.2 条件跳转指令  51
2.10.3 cmp指令和相应的条件
跳转  52
2.10.4 条件跳转的同义词  53
2.11 移位和循环移位  54
2.12 位字段和打包数据  57
2.13 IEEE浮点数格式  63
2.13.1 单精度格式  64
2.13.2 双精度格式  65
2.13.3 扩展精度格式  65
2.13.4 规范化浮点值  65
2.13.5 非数值数据  66
2.13.6 MASM对浮点值的支持  66
2.14 BCD表示法  67
2.15 字符  67
2.15.1 ASCII字符编码  68
2.15.2 MASM对ASCII字符的
支持  69
2.16 Unicode字符集  70
2.16.1 Unicode码位  70
2.16.2 Unicode码平面  70
2.16.3 Unicode编码  71
2.17 MASM对Unicode的支持  72
2.18 拓展阅读资料  72
2.19 自测题  72
第3章 内存的访问和组织  76
3.1 运行时的内存组织  76
3.1.1 “.code”段  77
3.1.2 “.data”段  77
3.1.3 “.const”段  78
3.1.4 “.data?”段  79
3.1.5 程序中声明段的组织方式  79
3.1.6 内存访问和4KB内存管理
单元页  80
3.2 MASM如何为变量分配内存  81
3.3 标签声明  82
3.4 小端模式和大端模式的数据组织
方式  82
3.5 内存访问  84
3.6 MASM对数据对齐的支持  85
3.7 x86-64的寻址模式  87
3.7.1 x86-64的寄存器寻址模式  88
3.7.2 x86-64的64位内存寻址模式  88
3.7.3 不支持大地址的应用程序  91
3.8 地址表达式  94
3.9 栈段以及push和pop指令  97
3.9.1 基本的push指令  97
3.9.2 基本的pop指令  98
3.9.3 使用push和pop指令保存
寄存器的状态  99
3.10 栈  99
3.11 其他push和pop指令  102
3.12 不通过弹出栈从栈中移除数据  102
3.13 不通过弹出栈访问压入栈的
数据  103
3.14 微软ABI注释  104
3.15 拓展阅读资料  104
3.16 自测题  104
第4章 常量、变量和数据类型  106
4.1 imul指令  106
4.2 inc和dec指令  107
4.3 MASM常量声明  107
4.3.1 常量表达式  109
4.3.2 this和$运算符  111
4.3.3 常量表达式求值  112
4.4 MASM typedef语句  112
4.5 类型强制  113
4.6 指针数据类型  116
4.6.1 在汇编语言中使用指针  117
4.6.2 在M
展开全部

作者简介

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

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航