第1章 汇编语言基础 1
1.1 Intel 80x86系列处理器 1
1.1.1 16位80x86处理器 1
1.1.2 IA-32处理器 2
1.1.3 Intel 64处理器 3
1.2 个人计算机系统 4
1.2.1 硬件组成 4
1.2.2 寄存器 6
1.2.3 存储器组织 9
1.2.4 程序设计语言 13
1.2.5 软件系统 15
1.3 汇编语言程序格式 18
1.3.1 指令代码格式 18
1.3.2 语句格式 20
1.3.3 源程序框架 22
1.3.4 开发过程 26
第1章习题 31
第2章 数据表示和寻址 33
2.1 数据表示 33
2.1.1 数制 33
2.1.2 数值的编码 36
2.1.3 字符的编码 38
2.2 常量表达 40
2.3 变量应用 43
2.3.1 变量定义 43
2.3.2 变量属性 48
2.4 数据寻址方式 50
2.4.1 立即数寻址方式 51
2.4.2 寄存器寻址方式 52
2.4.3 存储器寻址方式 53
2.4.4 各种数据寻址方式的组合 57
第2章习题 58
第3章 通用数据处理指令 62
3.1 数据传送类指令 62
3.1.1 通用数据传送指令 62
3.1.2 堆栈操作指令 65
3.1.3 其他传送指令 68
3.2 算术运算类指令 70
3.2.1 状态标志 70
3.2.2 加法指令 72
3.2.3 减法指令 74
3.2.4 乘法和除法指令 76
3.2.5 其他运算指令 77
3.3 位操作类指令 79
3.3.1 逻辑运算指令 79
3.3.2 移位指令 82
第3章习题 85
第4章 程序结构 91
4.1 顺序程序结构 91
4.2 分支程序结构 93
4.2.1 无条件转移指令 93
4.2.2 条件转移指令 96
4.2.3 单分支程序结构 101
4.2.4 双分支程序结构 103
4.2.5 多分支程序结构 104
4.3 循环程序结构 106
4.3.1 循环指令 107
4.3.2 计数控制循环 109
4.3.3 条件控制循环 111
4.3.4 多重循环 112
第4章习题 113
第5章 模块化程序设计 118
5.1 子程序结构 118
5.1.1 子程序指令 118
5.1.2 子程序设计 122
5.2 参数传递 123
5.2.1 寄存器传递参数 123
5.2.2 共享变量传递参数 126
5.2.3 堆栈传递参数 129
5.3 多模块程序结构 131
5.3.1 源文件包含 131
5.3.2 模块连接 134
5.3.3 子程序库 135
5.4 宏结构 136
5.4.1 宏汇编 136
5.4.2 重复汇编 141
5.4.3 条件汇编 143
第5章习题 146
第6章 Windows编程 150
6.1 操作系统函数调用 150
6.1.1 动态连接库 150
6.1.2 MASM的过程声明和调用 151
6.1.3 程序退出函数 152
6.2 控制台应用程序 153
6.2.1 控制台输出 153
6.2.2 控制台输入 155
6.2.3 单字符输入 158
6.3 图形窗口应用程序 159
6.3.1 消息窗口 159
6.3.2 结构变量 160
6.3.3 MASM的高级语言特性 162
6.3.4 简单窗口程序 169
第6章习题 176
第7章 与Visual C++混合编程 179
7.1 嵌入汇编 179
7.2 模块连接 182
7.2.1 约定规则 182
7.2.2 堆栈帧 184
7.3 调用高级语言函数 191
7.3.1 嵌入汇编中调用高级语言函数 191
7.3.2 汇编语言中调用C库函数 191
7.4 使用Visual C++开发环境 193
7.4.1 汇编语言程序的开发过程 193
7.4.2 汇编语言程序的调试过程 194
第7章习题 197
第8章 DOS环境程序设计 201
8.1 DOS编程 201
8.1.1 实地址存储模型 201
8.1.2 DOS应用程序框架 203
8.1.3 DOS功能调用 205
8.2 串操作类指令 208
8.2.1 串传送指令 208
8.2.2 串检测指令 210
8.3 输入输出程序设计 213
8.3.1 输入输出指令 213
8.3.2 定时器初始化编程 215
8.3.3 扬声器控制编程 217
8.4 中断控制编程 218
8.4.1 中断控制系统 218
8.4.2 内部中断服务程序 221
8.4.3 驻留中断服务程序 222
第8章习题 224
第9章 浮点、多媒体及64位指令 227
9.1 浮点指令 228
9.1.1 实数编码 228
9.1.2 浮点寄存器 231
9.1.3 浮点指令及其编程 234
9.2 多媒体指令 236
9.2.1 MMX技术 237
9.2.2 SSE技术 239
9.2.3 SSE2技术 240
9.2.4 SSE3技术 241
9.3 64位指令 242
9.3.1 64位方式的运行环境 243
9.3.2 64位方式的指令 244
第9章习题 246
附录A 调试程序WinDbg 248
附录B 输入输出子程序库 262
附录C 32位通用指令列表 264
附录D MASM伪指令和操作符列表 268
附录E 列表文件符号说明 270
附录F 常见汇编错误信息 271
参考文献 274