绪论 1
第1章 计算机中数据的表示 3
1.1 数制 4
1.1.1 十进制 4
1.1.2 二进制 4
1.1.3 十六进制 5
1.1.4 八进制 5
1.1.5 数制间的转换 5
1.2 有符号数的表示 8
1.2.1 原码 8
1.2.2 反码 9
1.2.3 补码 10
1.3 二进制运算 11
1.3.1 算术运算 11
1.3.2 逻辑运算 14
1.4 编码 15
1.4.1 BCD码 15
1.4.2 ASCII码 15
1.4.3 UNICODE标准 17
习题 17
第2章 微型计算机体系结构 19
2.1 微机系统概述 20
2.1.1 计算机的硬件 20
2.1.2 计算机的软件 21
2.2 IA-32微处理器 22
2.2.1 Intel微处理器发展 22
2.2.2 IA-32 CPU的操作模式 25
2.2.3 IA-32 CPU功能结构 26
2.2.4 IA-32 CPU寄存器组 28
2.3 IA-32 CPU存储器管理 34
2.3.1 内存管理模型 35
2.3.2 存储器模型与操作模式的关系 40
2.4 外设 40
习题 41
第3章 汇编语言基础 42
3.1 汇编语言程序开发过程 43
3.1.1 搭建汇编语言开发环境 43
3.1.2 汇编程序开发步骤 44
3.2 汇编语言程序结构 48
3.2.1 汇编语言的语句格式 49
3.2.2 汇编语言程序格式 49
3.2.3 汇编语言程序格式定义伪指令 52
3.3 参数、变量和标号 55
3.3.1 数值型参数 56
3.3.2 变量定义伪指令 61
3.3.3 变量和标号的属性 68
习题 70
第4章 IA-32指令格式和寻址方式 72
4.1 IA-32指令格式 73
4.2 机器代码格式 73
4.3 操作数寻址方式 75
4.3.1 立即数寻址 75
4.3.2 寄存器寻址 77
4.3.3 存储器寻址 77
4.4 转移地址寻址方式 84
4.4.1 段内直接寻址 85
4.4.2 段内间接寻址 85
4.4.3 段间直接寻址 86
4.4.4 段间间接寻址 86
习题 87
第5章 数据操作 89
5.1 数据传送 90
5.1.1 通用数据传送指令 90
5.1.2 地址传送指令 93
5.2 算术运算 96
5.2.1 加法指令 96
5.2.2 减法指令 98
5.2.3 乘法指令 101
5.2.4 除法指令 103
5.2.5 符号扩展指令 105
5.3 位操作 109
5.3.1 逻辑运算指令 109
5.3.2 位测试指令 112
5.3.3 位扫描指令 113
5.3.4 移位指令 114
5.3.5 循环移位指令 116
5.3.6 双精度移位指令 118
习题 119
第6章 分支和循环程序设计 122
6.1 转移指令 123
6.1.1 无条件转移指令JMP 123
6.1.2 条件转移指令Jcc 125
6.2 分支程序设计 129
6.2.1 单分支结构程序设计 130
6.2.2 双分支结构程序设计 131
6.2.3 多分支结构程序设计 134
6.3 循环结构设计 139
6.3.1 用转移指令实现循环结构 140
6.3.2 循环指令 145
习题 149
第7章 子程序设计 152
7.1 堆栈 153
7.2 子程序 158
7.2.1 子程序定义伪指令 158
7.2.2 子程序调用和返回指令 159
7.2.3 子程序的参数传递 164
7.2.4 子程序的局部变量 168
7.2.5 子程序的嵌套、递归与重入 170
7.2.6 子程序的应用 173
7.3 Windows API函数 176
7.4 子程序伪指令的应用 181
7.5 模块化程序设计 183
7.5.1 创建多模块程序 183
7.5.2 子程序库 188
习题 189
第8章 输入输出程序设计 191
8.1 底层输入输出程序设计 192
8.1.1 输入输出指令 193
8.1.2 I/O程序设计 195
8.1.3 输入输出保护 199
8.2 高层输入输出程序设计 203
8.2.1 中断指令 203
8.2.2 实模式下的系统功能调用 205
8.2.3 利用Windows API实现Win32控制台输入输出程序 210
8.3 输入输出子程序库 215
8.3.1 32位输入输出子程序库 215
8.3.2 实模式输入输出子程序库 218
习题 220
第9章 串操作编程 222
9.1 相关指令 223
9.1.1 标志位操作指令 223
9.1.2 串操作指令 224
9.2 串操作应用实例 231
习题 234
第10章 宏结构程序设计 235
10.1 宏汇编 236
10.2 重复汇编 244
10.3 条件汇编 246
10.4 宏的实例 251
习题 254
第11章 汇编语言与Visual C++的混合编程 256
11.1 Visual C++嵌入汇编方式 257
11.1.1 嵌入式汇编语句的格式 257
11.1.2 嵌入式汇编语句的规定 258
11.1.3 嵌入式汇编语句的使用 261
11.2 Visual C++与汇编语言的模块连接 264
11.2.1 混合编程的约定规则 264
11.2.2 C++程序调用汇编子程序 267
11.2.3 汇编语言调用C++子程序 270
习题 272
附录 275
附录A 汇编程序MASM的伪指令和操作符 276
附录B 宏汇编命令ML和连接命令LINK常用参数速查 278
附录C 调试程序Windbg 280
附录D 输入输出宏命令 283
附录E I/O子程序 284
附录F 指令速查表 285
附录G 调试程序DEBUG主要命令 291
参考文献 295