第一章 基础知识 1
1.1 数制及数制间的转换 1
1.1.1 二进制数、十进制数及十六进制数 1
1.1.2 二进制数与十进制数之间的转换 2
1.1.3 十六进制数与二进制数、十进制数之间的转换 3
1.2 二进制数与十六进制数的运算 5
1.2.1 二进制数和十六进制数的算术运算 5
1.2.2 二进制数和十六进制数的逻辑运算 6
1.3 ASCII码和BCD码 7
1.4 数值与编码的转换 8
1.5 本章小结 9
第二章 IBM-PC计算机组织 11
2.1 IBM-PC微型计算机的基本结构 11
2.2 IBM-PC上的软件与汇编语言 12
2.2.1 系统软件和应用软件 12
2.2.2 高级语言、汇编语言、机器语言 13
2.2.3 汇编语言的开发环境 14
2.3 Inte18086/8088CPU的寄存器结构 14
2.3.1 通用寄存器 15
2.3.2 段寄存器 17
2.3.4 标志寄存器 18
2.3.3 指令指针 18
2.4 PC机的内存组织 20
2.4.1 内存地址与字节、字的存放 20
2.4.2 内存地址的分段 22
2.4.3 物理地址和逻辑地址 24
2.4.4 实际内存分配方法 25
2.5 堆栈 26
2.5.1 堆栈在哪里 26
2.5.2 堆栈操作 26
2.6 本章小结 28
3.1.1 指令的汇编语言格式 30
第三章 寻址方式与指令系统 30
3.1 指令格式 30
3.1.2 指令的机器语言格式 31
3.2 寻址方式 33
3.2.1 与数据有关的寻址方式 33
3.2.2 与转移地址有关的寻址方式 37
3.3 指令系统 40
3.3.1 数据传送指令 41
3.3.2 算术运算指令 44
3.3.3 逻辑指令 49
3.3.4 控制转移指令 52
3.4 本章小结 59
4.1 分段式程序结构 61
4.1.1 一个排序的汇编语言程序例子 61
第四章 汇编语言程序格式 61
4.1.2 语句格式 62
4.1.3 标号和符号名 64
4.1.4 程序中的段和过程 64
4.2 定义程序结构的伪指令 66
4.2.1 段定义伪指令 66
4.2.2 过程定义伪指令 69
4.2.3 定位伪指令ORG 69
4.3.1 常数和常量 70
4.2.4 END及其他程序结构伪指令 70
4.3 数据定义与内存分配 70
4.3.2 变量与变量的定义 71
4.3.3 数据定义时用到的操作符和表达式 73
4.4 表达式与操作符 75
4.4.1 表达式 75
4.4.2 算术操作符 75
4.4.3 逻辑操作符 76
4.4.4 关系操作符 76
4.4.5 数值回送操作符 76
4.4.6 属性操作符 78
4.4.7 操作符的运算优先级 80
4.4.8 LABEL伪指令 81
4.5 汇编、连接和运行 81
4.5.1 汇编与连接 81
4.5.2 LST文件 82
4.5.3 MAP文件 84
4.6 程序的调试与DEBUG 85
4.6.1 DEBUG的主要命令 85
4.6.2 用DEBUG调试程序 92
4.7 本章小结 96
5.1 顺序程序设计 99
第五章 分支与循环程序设计 99
5.2 分支程序设计 105
5.2.1 分支程序的结构形式 105
5.2.2 转移分支 105
5.2.3 用跳转表实现多路转移 108
5.3 循环程序设计 111
5.3.1 循环程序的结构形式 111
5.3.2 循环程序实例 112
5.3.3 多重循环程序设计 118
5.4 串处理 120
5.4.1 串处理指令 120
5.4.2 串操作指令的运用 123
5.4.3 串处理应用的例子 125
5.5 本章小结 130
第六章 子程序结构 132
6.1 子程序的设计方法 132
6.1.1 过程的定义 132
6.1.2 过程的调用和返回 132
6.2 编写子程序的注意事项 133
6.2.1 正确地切分子程序 134
6.2.2 确定接口参数及参数传递方法 135
6.2.3 保存环境信息 135
6.2.4 保持堆栈平衡 136
6.2.5 参数传递实例 137
6.3 子程序举例 141
6.4 子程序嵌套和递归 144
6.5 本章小结 148
第七章 高级汇编语言技术 150
7.1 宏 150
7.1.1 宏的定义 150
7.1.2 宏调用 151
7.1.3 宏展开 151
7.1.4 运用宏的实例 152
7.2.1 结构的定义 154
7.1.5 宏与子程序 154
7.2 结构 154
7.2.2 结构的预置与内存分配 155
7.2.3 访问结构变量及其字段 155
7.2.4 结构使用实例 157
7.3 本章小结 159
第八章 输入/输出程序设计 161
8.1 输入/输出指令 161
8.1.1 I/O端口 161
8.1.3 I/O端口寻址方式 162
8.1.2 IN/OUT指令 162
8.2 输入/输出控制方式 163
8.2.1 程序控制的I/O方式 163
8.2.2 中断控制方式 165
8.2.3 直接内存访问(DMA)方式 165
8.3 中断控制方式 167
8.3.1 中断 167
8.3.2 中断源 167
8.3.3 中断优先级 170
8.3.4 中断向量表 171
8.3.5 中断过程 171
8.4 编写中断处理程序 172
8.4.1 INT类指令和IRET指令 173
8.4.2 DOS提供的中断设置支持 173
8.4.3 中断处理程序举例 174
8.5 本章小结 178
第九章 BIOS和DOS中断 180
9.1 BIOS中断调用 180
9.2 DOS中断调用 181
9.3 键盘I/O调用 181
9.3.1 有关键盘输入的基本知识 181
9.3.2 BIOS键盘功能调用 183
9.3.3 DOS键盘功能调用 185
9.4 显示I/O调用 187
9.4.1 显示模式与字符属性 187
9.4.2 BIOS显示功能调用 189
9.4.3 DOS显示功能调用 194
9.5 BIOS及DOS中的时间功能调用 194
9.5.1 DOS时间功能调用 194
9.5.2 BIOS时间功能调用 195
9.6 本章小结 198
第十章 单色和彩色图形显示 200
10.1 显示卡与显示缓冲区 200
10.2 字符显示缓冲区的组织 201
10.3 CGA卡图形模式下的编程 204
10.4 HGC图形方式下的编程 209
10.5 本章小结 215
第十一章 磁盘文件访问技术 216
11.1 访问文件的基本过程 216
11.2 DOS提供的文件功能调用 216
11.2.1 基于文件句柄的DOS功能调用 216
11.2.2 路径名和ASCIIZ串 218
11.2.3 句柄、错误代码及文件属性 218
11.2.4 文件打开方式与读写指针移动方式 219
11.3 文件操作举例 220
11.4 本章小结 224
第十二章 模块化程序设计 226
12.1 多模块程序设计 226
12.1.1 多个模块中的段定义 226
12.1.2 模块间的变量传递 227
12.1.3 子程序参数传递 227
12.1.4 举例 227
12.2 C与汇编的连接 229
附录Ⅰ Intel 8086/8088指令系统一览表 231
附录Ⅱ 北京市高等教育学历文凭考试“8086汇编语言”课程考试大纲 240
参考文献 248