第1章 微型计算机系统 1
1.1 微型计算机系统硬件结构 1
1.1.1 微型计算机系统的基本组成 1
1.1.2 微型计算机系统的系统结构 3
1.1.3 微型计算机系统的性能指标 4
1.1.4 微型计算机系统的性能评价 5
1.2 8086/8088微处理器 6
1.2.1 8086/8088微处理器的结构 6
1.2.2 8086/8088的寄存器 8
1.2.3 8086/8088的存储器组织 11
1.3 80x86系列微处理器简介 14
1.3.1 80286处理器 14
1.3.2 80386处理器 15
1.3.3 80486处理器 17
1.3.4 奔腾及以上处理器 18
1.4 微型计算机软件系统 19
1.5 计算机硬件系统和软件系统之间的关系 19
单元测试1 20
第2章 程序设计基础 24
2.1 程序设计语言 24
2.1.1 机器语言 24
2.1.2 汇编语言 24
2.1.3 高级程序设计语言 25
2.1.4 4GL语言 27
2.1.5 程序设计语言的比较 27
2.2 结构化程序设计 28
2.2.1 结构化程序设计思想 28
2.2.2 结构化程序设计方法 29
2.2.3 面向对象程序设计简介 30
2.3 程序设计风格 30
2.3.1 程序设计风格的概念 30
2.3.2 良好的程序设计风格 31
2.4 程序设计的基本过程 32
单元测试2 33
第3章 指令系统 36
3.1 指令系统概述 36
3.1.1 机器指令格式 36
3.1.2 寻址技术 37
3.1.3 立即寻址 37
3.1.4 寄存器寻址 38
3.1.5 存储器寻址方式 38
3.2 8086/8088指令系统 42
3.2.1 数据传送指令 42
3.2.2 算术运算指令 48
3.2.3 逻辑运算和移位指令 52
3.2.4 处理器控制指令 57
3.3 80x86指令系统 58
3.3.1 80286指令系统 58
3.3.2 80386指令系统 60
3.3.3 80486指令系统 66
3.3.4 Pentium指令系统 67
单元测试3 68
第4章 汇编语言 74
4.1 汇编语言语句 74
4.1.1 汇编语言语句分类 74
4.1.2 汇编语言语句格式 74
4.2 符号定义语句 75
4.2.1 等值语句 75
4.2.2 等号语句 76
4.2.3 解除定义语句 76
4.3 数据定义语句 76
4.4 汇编语言数据表示与运算符 78
4.4.1 常数 78
4.4.2 变量 79
4.4.3 标号 80
4.4.4 表达式 80
4.5 其他伪指令语句 86
4.5.1 段结构伪指令 86
4.5.2 完整段定义伪指令 89
4.5.3 过程定义伪指令 90
4.5.4 模块定义伪指令 90
4.5.5 80x86指令集选择伪指令 91
4.5.6 简化段定义伪指令 92
4.6 宏指令 94
4.6.1 宏指令定义、调用及展开 94
4.6.2 宏操作符 96
4.6.3 LOCAL伪指令 99
4.7 重复汇编与条件汇编 100
4.7.1 重复汇编 100
4.7.2 条件汇编 102
4.8 常用的DEBUG命令 104
4.8.1 DEBUG程序的调用 104
4.8.2 DEBUG的主要命令 105
单元实验 汇编语言程序的调试与运行 111
实验1 MASM使用方法 111
实验2 DEBUG命令 113
单元测试4 115
第5章 汇编语言程序设计基本技术 123
5.1 顺序程序设计 123
5.2 分支程序设计 125
5.2.1 转移指令 126
5.2.2 双分支结构程序设计 129
5.2.3 多分支结构程序设计 131
5.3 循环程序设计 135
5.3.1 循环控制指令 135
5.3.2 串操作指令 136
5.3.3 循环程序结构 141
5.3.4 循环控制方法 142
5.3.5 多重循环程序设计 146
5.4 子程序设计 148
5.4.1 子程序定义 148
5.4.2 子程序的调用和返回 149
5.4.3 子程序的参数传递 153
5.4.4 子程序嵌套与递归 157
单元实验 汇编语言程序设计 160
实验1 顺序程序设计 160
实验2 分支程序设计 161
实验3 循环程序设计(一) 163
实验4 循环程序设计(二) 164
实验5 子程序设计 165
单元测试5 166
第6章 系统功能调用 175
6.1 系统功能调用概述 175
6.2 DOS系统功能调用 177
6.2.1 常用DOS系统功能调用 177
6.2.2 DOS系统功能调用实例 185
6.3 BIOS系统功能调用 191
6.3.1 BIOS系统功能调用概述 191
6.3.2 BIOS系统功能调用实例 193
单元实验 系统功能调用 195
单元测试6 201
第7章 汇编语言与高级语言接口 204
7.1 混合编程 204
7.2 C/C++的嵌入式汇编 205
7.2.1 在C/C++程序中嵌入汇编语句 206
7.2.2 在嵌入式汇编中访问C/C++的数据 209
7.2.3 用汇编语言程序段编写C函数 210
7.2.4 汇编程序调用C/C++函数 213
7.3 用C/C++调用汇编 214
7.3.1 接口 214
7.3.2 调用汇编模块 216
单元实验 混合编程 225
实验1 在C/C++中嵌入汇编 225
实验2 使用模块连接方式编程 227
单元测试7 229
第8章 综合程序设计 233
8.1 显示程序设计 233
8.1.1 显示程序概述 233
8.1.2 显示程序设计实例 237
8.2 键盘输入/输出程序设计 241
8.2.1 键盘输入/输出程序概述 241
8.2.2 键盘输入/输出程序设计实例 243
8.3 文件管理 246
8.3.1 文件管理概述 246
8.3.2 文件管理程序设计实例 251
单元实验 综合程序设计 254
实验1 显示程序设计 254
实验2 输入/输出程序设计 258
实验3 文件存取程序设计 264
单元测试8 269
第9章 逆向工程与反汇编 273
9.1 逆向工程与反汇编概述 273
9.1.1 反汇编的概念 273
9.1.2 反汇编的应用场景 274
9.1.3 反汇编的方法 275
9.1.4 基本的反汇编算法 275
9.1.5 软件逆向工程 275
9.2 常用逆向工程与反汇编工具 276
9.2.1 分类工具 277
9.2.2 摘要工具 278
9.2.3 反汇编器 279
9.3 反汇编程序中函数的理解 280
9.3.1 概述 280
9.3.2 函数调用约定 282
9.3.3 函数参数 286
9.3.4 函数的局部变量 290
9.3.5 函数的返回值 291
9.3.6 函数原型的还原 291
9.4 反汇编程序中数据结构的理解 294
9.4.1 数组 294
9.4.2 结构体 299
9.5 反汇编程序中分支语句的理解 304
9.5.1 if分支语句 305
9.5.2 switch分支语句 306
9.6 反汇编程序中循环语句的理解 308
9.6.1 for循环语句 308
9.6.2 while/do…while循环语句 310
9.7 综合实例 313
单元测试9 322
附录A 单元测试参考答案 325
附录B 80x86指令集 339
附录C 伪指令简表 345
附录D DEBUG命令表 348
附录E ASCII码表 350
附录F DOS系统功能调用表(INT 21H) 352
附录G BIOS中断 355
参考文献 358