1 汇编语言基础知识 1
1.1 计算机系统的组成 1
1.1.1 计算机硬件的组成 1
1.1.2 计算机的软件系统 3
1.2 程序设计语言 4
1.2.1 机器语言 4
1.2.2 汇编语言 4
1.2.3 高级语言 4
1.2.4 汇编语言的应用 5
1.3 数据信息的表示 5
1.3.1 数制与转换 5
1.3.2 数值数据的表示 8
1.3.3 非数值数据的表示 10
习题一 13
2 IBM PC计算机组织 14
2.1 INTEL 8086/8088 CPU微处理器 14
2.2 8088微处理器的寄存器 16
2.2.1 通用寄存器 16
2.2.2 专用寄存器 17
2.3 8088的存储器 19
2.3.1 存储单元的地址和内容 19
2.3.2 存储器地址的分段 20
2.3.3 逻辑地址和物理地址 21
2.3.4 分段结构的使用 21
2.4 端口与外部设备 22
习题二 22
3 8086/8088的寻址方式和指令系统 23
3.1 寻址方式 23
3.1.1 指令结构 23
3.1.2 操作数寻址方式(operand-addressing modes) 23
3.1.3 段跨越(segment overriding) 27
3.2 8086/8088的指令系统 28
3.2.1 数据传送指令 29
3.2.2 转换指令 35
3.2.3 算术指令 36
3.2.4 十进制调整指令 45
3.2.5 逻辑运算和移位指令 49
3.2.6 字符串操作指令 56
3.2.7 控制转移指令 71
习题三 82
4 汇编程序格式与程序调试 90
4.1 汇编语言程序的格式 90
4.1.1 汇编语言程序的基本结构及编译步骤 90
4.1.2 段的定义、假设与引用 94
4.1.3 程序的结束 97
4.1.4 汇编语言的语句 98
4.2 汇编程序调试 109
4.2.1 汇编程序的查错方法 109
4.2.2 汇编程序的调试工具 109
4.2.3 DEBUG的使用方法 110
4.2.4 用Turbo Debugger调试汇编程序 117
4.2.5 用Soft-ICE调试汇编程序 118
习题四 121
5 基本程序设计 126
5.1 概述 126
5.1.1 汇编语言程序设计的步骤 126
5.1.2 三种基本结构 127
5.2 顺序程序设计 127
5.2.1 加减运算 127
5.2.2 乘除运算 128
5.2.3 屏蔽、组合、求反码、求补 130
5.2.4 二进制数、BCD数及ASCII码的转换 130
5.3 分支程序设计 131
5.3.1 单重分支结构的程序设计 131
5.3.2 多重分支结构的程序设计 133
5.4 循环程序设计 137
5.4.1 循环程序的结构 137
5.4.2 单重循环程序设计 139
5.4.3 多重循环程序设计 152
习题五 156
6 子程序设计 160
6.1 子程序与主程序 160
6.1.1 子程序与主程序 160
6.1.2 子程序调用与返回的方法 161
6.2 子程序设计方法 164
6.2.1 主调程序与子程序间的参数传递 164
6.2.2 寄存器内容的保护与恢复 175
6.2.3 子程序的嵌套与递归调用 177
6.2.4 子程序文件 181
习题六 182
7 输入输出程序设计与中断技术 185
7.1 输入输出概述 185
7.1.1 I/O接口 185
7.1.2 输入、输出过程 186
7.2 输入输出的控制方式 187
7.2.1 程序直接控制方式 187
7.2.2 程序中断传送方式 192
7.2.3 直接存储器存取(DMA)方式 192
7.3 中断 192
7.3.1 中断的基本概念 192
7.3.2 中断处理过程 193
7.3.3 8086/8088CPU中断系统 196
7.3.4 中断控制器8259A 200
7.3.5 中断程序设计 203
习题七 210
8 系统调用及程序设计 212
8.1 DOS系统功能调用 212
8.1.1 系统调用的方法 212
8.1.2 设备管理系统功能调用 213
8.1.3 文件管理系统功能调用 215
8.1.4 内存管理系统功能调用 225
8.2 常用的BIOS功能调用 227
8.2.1 键盘驱动程序(INT 16H) 228
8.2.2 显示器输出控制中断调用(INT 10H) 230
8.2.3 打印机驱动程序(INT 17H) 241
8.2.4 磁盘驱动程序(INT 13H) 242
8.2.5 时钟中断调用(INT 1AH) 243
习题八 244
9 TSR程序设计 246
9.1 TSR程序与DOS内存使用 246
9.2 活跃TSR与被动TSR 250
9.3 DOS的重入问题 252
9.4 TSR程序设计要点与实例 252
9.4.1 TSR程序设计要点 252
9.4.2 TSR程序实例 253
习题九 262
10 汇编语言与高级语言的连接 264
10.1 C语言与汇编语言的连接 264
10.1.1 C语言与汇编语言连接的基本技术 264
10.1.2 C语言与汇编语言连接的实例程序 269
10.1.3 自动生成汇编语言程序框架 275
10.1.4 C语言的内部汇编 278
10.2 FoxPro语言与汇编语言的连接 280
10.2.1 FoxPro与汇编语言连接的一般方法 280
10.2.2 FoxPro与汇编语言的连接编程 281
10.3 QBASIC语言与汇编语言的连接 286
10.3.1 QBASIC语言调用汇编语言的基本方法 286
10.3.2 QBASIC语言与汇编语言的连接实例 287
习题十 289
附录1 中断向量地址表 290
附录2 DOS系统功能调用表 292
参考文献 300