第1章 汇编语言基础知识 1
1.1计算机系统概述 1
1.1.1计算机的硬件 1
1.1.2计算机的软件 3
1.1.3计算机的程序设计语言 3
1.2数据表示 5
1.2.1数制 5
1.2.2编码 6
1.2.3有符号数的表示法 8
1.2.4二进制数运算 9
1.3 Intel 80x86系列微处理器 10
1.3.1 16位80x86微处理器 10
1.3.2 IA-32微处理器 10
1.3.3 Intel 64处理器 12
1.4微型计算机(PC)系统 12
1.5 8086微处理器 15
1.5.1 8086的功能结构 15
1.5.2 8086的寄存器 16
1.5.3 8086的存储器组织 18
1.6 8086的寻址方式 20
1.6.1 8086的机器代码格式 21
1.6.2立即数寻址方式 22
1.6.3寄存器寻址方式 23
1.6.4存储器寻址方式 23
习题1 25
第2章8086的指令系统 27
2.1数据传送类指令 27
2.1.1通用数据传送指令 28
2.1.2堆栈操作指令 30
2.1.3标志传送指令 31
2.1.4地址传送指令 32
2.2算术运算类指令 32
2.2.1状态标志 32
2.2.2加法指令 34
2.2.3减法指令 35
2.2.4乘法指令 36
2.2.5除法指令 37
2.2.6符号扩展指令 38
2.2.7十进制调整指令 38
2.3位操作类指令 41
2.3.1逻辑运算指令 41
2.3.2移位指令 42
2.3.3循环移位指令 43
2.4控制转移类指令 44
2.4.1无条件转移指令 45
2.4.2条件转移指令 46
2.4.3循环指令 48
2.4.4子程序指令 49
2.4.5中断指令 50
2.5处理机控制类指令 52
习题2 53
第3章 汇编语言程序格式 58
3.1汇编语言程序的开发 58
3.1.1汇编语言程序的语句格式 58
3.1.2汇编语言的程序格式 59
3.1.3汇编语言程序的开发过程 61
3.1.4 DOS系统功能调用 67
3.2参数、变量和标号 69
3.2.1数值型参数 69
3.2.2变量定义伪指令 71
3.2.3变量和标号的属性 75
3.3程序段的定义和属性 77
3.3.1 DOS的程序结构 77
3.3.2简化段定义的格式 78
3.3.3完整段定义的格式 81
3.4复杂数据结构 85
3.4.1结构 85
3.4.2记录 86
习题3 87
第4章 基本汇编语言程序设计 90
4.1顺序程序设计 90
4.2分支程序设计 91
4.2.1单分支结构 91
4.2.2双分支结构 92
4.2.3多分支结构 93
4.3循环程序设计 95
4.3.1计数控制循环 96
4.3.2条件控制循环 97
4.3.3多重循环 98
4.3.4串操作类指令 99
4.4子程序设计 104
4.4.1过程定义伪指令 104
4.4.2子程序的参数传递 106
4.4.3子程序的嵌套、递归与重入 109
4.4.4子程序的应用 111
习题4 115
第5章 高级汇编语言程序设计 118
5.1高级语言特性 118
5.1.1条件控制伪指令 118
5.1.2循环控制伪指令 120
5.1.3过程声明和过程调用伪指令 121
5.2宏结构程序设计 124
5.2.1宏汇编 124
5.2.2重复汇编 129
5.2.3条件汇编 130
5.3模块化程序设计 132
5.3.1源程序文件的包含 132
5.3.2目标代码文件的连接 137
5.3.3子程序库的调入 139
5.4输入/输出程序设计 140
5.4.1输入/输出指令 141
5.4.2程序直接控制输入/输出 142
5.4.3程序查询输入/输出 143
5.4.4中断服务程序 144
习题5 149
第6章32位指令及其编程 153
6.1 32位指令运行环境 153
6.1.1寄存器 154
6.1.2寻址方式 156
6.1.3机器代码格式 157
6.2 32位扩展指令 158
6.2.1数据传送类指令 158
6.2.2算术运算类指令 160
6.2.3位操作类指令 161
6.2.4串操作类指令 161
6.2.5控制转移类指令 162
6. 3 DOS下的32位程序设计 165
6.4 32位新增指令 168
6.4.1 80386新增指令 168
6.4.2 80486新增指令 171
6.4.3 Pentium新增指令 172
6.4.4 Pentium Pro新增指令 176
6.5用汇编语言编写32位Windows应用程序 177
6.5.1 32位Windows应用程序的特点 177
6.5.2 32位Windows控制台程序 178
6.5.3 Windows应用程序的开发 182
6.5.4创建消息窗口 183
6.5.5创建窗口应用程序 184
习题6 190
第7章 汇编语言与C/C ++的混合编程 193
7.1 Turbo C嵌入汇编方式 193
7.1.1嵌入汇编语句的格式 194
7.1.2汇编语句访问C语言的数据 194
7.1.3嵌入汇编的编译过程 195
7. 2 Turbo C模块连接方式 196
7.2.1混合编程的约定规则 197
7.2.2汇编模块的编译和连接 198
7.2.3混合编程的参数传递 199
7.2.4汇编语言程序对C语言程序的调用 206
7.3汇编语言在Visual C++中的应用 208
7.3.1嵌入汇编语言指令 209
7.3.2调用汇编语言过程 212
7.3.3使用汇编语言优化C++代码 215
7.3.4使用Visual C++开发汇编语言程序 218
习题7 220
第8章80x87浮点指令及其编程 223
8.1浮点数据格式 223
8.1.1实数和浮点格式 223
8.1.2 80x87的数据格式 225
8.2浮点寄存器 227
8.3浮点指令的程序设计 229
8.3.1浮点传送类指令 230
8.3.2算术运算类指令 232
8.3.3超越函数类指令 235
8.3.4浮点比较类指令 236
8.3.5 FPU控制类指令 240
习题8 244
第9章 多媒体指令及其编程 246
9.1 MMX指令系统 246
9.1.1 MMX的数据结构 246
9.1.2 MMX指令 248
9.1.3 MMX指令的程序设计 255
9.2 SSE指令系统 257
9.2.1 SIMD浮点指令 257
9.2.2 SIMD整数指令 266
9.2.3高速缓存优化处理指令 267
9.2.4 SSE指令的程序设计 268
9.3 SSE2指令系统 272
9.3.1 SSE2的数据类型 272
9.3.2 SSE2浮点指令 273
9.3.3 SSE2扩展指令 278
9.3.4 SSE2指令的程序设计 281
9.4 SSE3指令系统 282
9.4.1 SSE3指令 282
9.4.2 SSE3指令的程序设计 284
习题9 285
第10章64位指令简介 287
10.1 64位方式的运行环境 287
10.2 64位方式的指令 289
附录A调试程序DEBUG 292
附录B调试程序CodeView 301
附录C汇编程序MASM的伪指令和操作符 309
附录D 80x86整数指令系统 310
附录E常见汇编错误信息 316
附录F输入/输出子程序库 319
参考文献 321