第1章 基础知识 1
1.1 汇编语言与汇编语言程序设计 1
1.1.1 汇编语言 1
1.1.2 汇编语言程序设计 1
1.2 进位计数制 2
1.2.1 常用计数制及其数的算术运算 2
1.2.2 数制转换 4
1.3 计算机中数和字符的表示 8
1.3.1 数的表示 8
1.3.2 字符的表示 11
第2章 IBM-PC计算机系统概述 13
2.1 Intel 8086/8088 CPU的功能结构 13
2.1.1 执行单元与接口部件单元 14
2.2 Intel 8086/8088存储器的组织 17
2.2.1 存储单元的地址和内容 17
2.2.2 Intel8086/8088存储器的组织 17
2.2.3 堆栈 19
2.3 Intel 80x86系列微处理器简介 20
2.3.1 80386微处理器 20
2.3.2 Pentium微处理器 22
2.4 外部设备 25
第3章 指令系统 28
3.1 指令格式 28
3.2 寻址方式 28
3.2.1 固定寻址(Inherent Addressing) 29
3.2.2 立即寻址(Immediate Addressing) 29
3.2.3 寄存器寻址(Register Addressing) 29
3.2.4 存储器寻址 29
3.3 指令的执行时间 34
3.4 Intel8086/8088指令系统 35
3.4.1 数据传送指令 36
3.4.2 算术运算指令 41
3.4.3 位操作指令 45
3.4.4 串操作指令 48
3.4.5 转移指令 48
3.4.6 处理器控制指令 48
3.5 Intel 80x86及Pentium指令系统 48
3.5.1 Intel80386新增和扩充指令 48
3.5.2 Pentium新增指令 57
第4章 汇编语言与汇编语言程序 63
4.1 汇编语言程序与汇编程序 63
4.2 汇编语言程序的格式和组成元素 63
4.2.1 标识符 64
4.2.2 保留字 64
4.2.3 表达式 64
4.3 伪指令 69
4.3.1 符号定义伪指令 70
4.3.2 变量定义伪指令 70
4.3.3 段定义伪指令 71
4.3.4 过程定义伪指令 73
4.3.5 80x86指令集选择伪指令 73
4.4 汇编语言程序的上机过程 73
4.4.1 MSAM汇编环境 74
4.4.2 TASM汇编环境 84
第5章 顺序程序设计 91
5.1 汇编语言程序设计的基本步骤 91
5.2 顺序程序设计 91
5.2.1 十进制算术运算 91
5.2.2 汇编语言程序中的输入/输出功能调用 94
5.3 顺序程序设计综合举例 97
第6章 分支程序设计 104
6.1 分支程序结构 104
6.2 转移指令 105
6.2.1 条件转移指令 105
6.2.2 无条件转移指令 108
6.3 分支程序设计 110
6.3.1 测试法分支程序设计 110
6.3.2 跳转表法分支程序设计 114
6.4 分支程序设计综合举例 117
第7章 循环程序设计 124
7.1 循环程序结构 124
7.2 循环指令 126
7.2.1 重复控制指令 126
7.2.2 串操作指令及重复前缀 128
7.3 循环程序设计 132
7.3.1 计数控制的循环程序设计 132
7.3.2 条件控制的循环程序设计 134
7.3.3 多重循环程序设计 139
7.4 循环程序设计综合举例 142
第8章 子程序设计及系统调用 148
8.1 调用程序与子程序 148
8.2 调用与返回指令 148
8.3 子程序设计 150
8.3.1 子程序的定义 150
8.3.2 子程序的调用与返回 151
8.3.3 保护现场与恢复现场 155
8.3.4 参数的传递 156
8.4 程序的嵌套和递归 163
8.4.1 子程序的嵌套 163
8.4.2 子程序的递归 166
8.5 子程序调用与系统功能调用 167
8.5.1 子程序调用与系统功能调用间的关系 167
8.5.2 系统功能调用的方法 168
8.6 子程序设计综合举例 169
第9章 高级汇编语言技术 176
9.1 宏汇编 176
9.1.1 宏定义 176
9.1.2 宏调用和宏扩展 177
9.1.3 宏定义和宏调用中参数的使用 178
9.1.4 宏嵌套 182
9.2 重复汇编 183
9.2.1 使用REPT伪指令的重复汇编结构 183
9.2.2 使用IRP伪指令的重复汇编结构 184
9.2.3 使用IRPC伪指令的重复汇编结构 185
9.3 条件汇编 186
9.3.1 条件汇编的概念及条件汇编的结构 186
9.3.2 条件汇编伪指令 186
9.4 库的使用 190
9.4.1 库的建立 190
9.4.2 库的使用 191
9.5 模块化程序设计 191
9.5.1 模块化程序设计概述 191
9.5.2 段的定义 192
9.5.3 模块间的通信 198
9.5.4 模块的连接 201
第10章 系统功能调用及实例 204
10.1 中断 204
10.1.1 中断的基本概念 204
10.1.2 中断的处理过程 206
10.2 系统功能调用方法 208
10.2.1 DOS功能调用 208
10.2.2 BIOS功能调用 211
10.3 系统功能调用应用实例 216
第11章 汇编语言与C/C++混合编程及实例 225
11.1 Turbo C嵌入汇编方式 225
11.1.1 嵌入汇编语句的格式 225
11.1.2 汇编语句访问C语言的数据 226
11.1.3 嵌入汇编的编译过程 228
11.1.4 Turbo C模块连接方式 229
11.2 汇编语言在Visual C++中的应用 233
11.2.1 嵌入汇编语言指令 234
11.2.2 调用汇编语言过程 236
11.2.3 使用汇编语言优化C++代码 238
11.2.4 使用Visual C++开发汇编语言程序 239
11.3 汇编语言与C/C++的混合编程实例 241
附录A 上机实验 246
实验一 程序的编辑、汇编、连接和调试 246
实验二 分支程序设计 246
实验三 循环程序设计 247
实验四 子程序 247
实验五 高级汇编语言技术 248
实验六 DOS功能调用与BIOS中断调用 248
实验七 C/C++语言与汇编语言的混合编程 249
附录B ASCII码表 250
附录C 80x86指令表 251
附录D MASM 5.0宏汇编程序出错信息 264
附录E DEBUG命令表 269
附录F BIOS和MS-DOS功能调用 271
参考文献 279