第一章 从计算机系统启动到简单的MASM编程 1
1.1 系统复位以后MS-DOS的建立过程 1
1.1.1 CPU的复位和系统初始化的步骤 1
目录 1
1.1.2 引导扇区的读取步骤 3
1.1.3 MS-DOS的三个文件 6
1.1.4 从磁盘读取引导扇区后加载OS的步骤 7
1.1.5 执行COMMAND.COM 9
1.1.6 内部命令 9
1.2 程序的启动原理 10
1.2.1 COM程序的启动过程 10
1.2.2 批处理文件的启动 18
1.2.3 EXE程序的启动步骤 18
1.3.1 编写简单的COM程序 22
1.3 编写简单的程序 22
1.3.2 编写简单的EXE程序 26
第二章 MS-DOS的存储器管理机构及其应用 28
2.1 MCB(存储器控制块) 28
2.1.1 MCB的结构 28
2.1.2 由DOS检索和分配存储器块的方法 29
2.2 常驻程序 32
2.2.1 常驻程序的种类 32
2.2.2 程序常驻的方法 33
2.2.3 由正常结束的常驻 38
2.2.4 常驻时的堆栈区域和环境变量区域 41
2.3 常驻程序的检索 43
2.3.1 常驻程序的检索方法 43
2.3.2 MS-DOS对常驻程序的检查功能 45
2.3.3 常驻程序常驻后的调用方法 46
2.4.1 编写TSR程序的注意事项 47
2.4 编程举例 47
2.4.2 TSR程序的实例 49
第三章 MS-DOS的磁盘管理 60
3.1 MS-DOS的磁盘形式 60
3.1.1 软磁盘的管理项目 60
3.1.2 MS-DOS的各磁盘区域的功用 61
3.2 目录区域和FAT区域的检索 66
3.2.1 目录区域的检索 66
3.2.2 FAT区域的检索 68
3.3 与磁盘有关的各种信息 70
3.3.1 DPB(磁盘参数块)和磁盘的自由空间 70
3.3.2 与磁盘有关的其它操作 74
3.3.3 恢复被删除文件的程序举例 78
4.1.1 设备驱动程序的功用 94
第四章 设备驱动程序 94
4.1 设备驱动程序的功用和种类 94
4.1.2 设备驱动程序的种类 96
4.1.3 设备驱动程序的安装 97
4.2 设备驱动程序的结构 97
4.2.1 设备头 98
4.2.2 请求头(命令包) 104
4.2.3 I/O请求命令的种类 105
4.3 取代RS-232-C ROM BIOS的常驻程序(TSR) 115
4.3.1 ROM BIOS和INS 8250的内部寄存器 115
4.3.2 程序的编写方法 121
4.3.3 RS-232-C接口信号和样板驱动程序 145
4.4 块型设备驱动程序举例 153
5.1.1 中断的种类 159
第五章 中断和中断处理程序 159
5.1 关于中断的基本知识 159
5.1.2 中断控制器8259A 161
5.2 硬中断处理程序 166
5.2.1 用汇编语言编写中断用的样板程序 166
5.2.2 结束中断和利用原有中断向量的方法 172
5.3 DOS通过中断监视程序 175
5.3.1 常驻和释放的步骤 224
5.3.2 命令说明和操作方法 227
5.4 MS-DOS的CTRL组合键和中断处理程序 229
5.4.1 MS-DOS的CTRL组合键 229
5.4.2 对CTRL组合键的编程控制方法 230
6.1 对应用程序访问文件进行追踪的FAT.ASM 236
6.1.1 FAT程序的使用方法 236
第六章 典型的实用程序 236
6.1.2 Log文件的显示格式 260
6.1.3 关于FAT程序的说明 264
6.2 环境变量的使用方法 265
6.2.1 MS-DOS的环境变量 265
6.2.2 环境变量的取得方法 266
6.2.3 环境变量的检索、修改和设置 270
6.3 同时打开20个以上文件的方法 276
6.3.1 MS-DOS文件句柄的结构 276
6.3.2 同时打开20个以上文件的测试程序 284
第七章 保护模式下的编程方法 291
7.1 80386 CPU的内部寄存器 291
7.1.1 寄存器的种类 291
7.1.2 标志寄存器 293
7.1.3 控制寄存器 295
7.1.4 工作模式 297
7.2 存储器物理地址的形成 299
7.2.1 虚拟存储器(虚拟地址)和物理存储器(物理地址) 299
7.2.2 描述符表和描述符 300
7.2.3 段选择器和描述符表 309
7.3 进入保护模式的编程方法 322
7.3.1 在保护模式下访问VRAM的程序 322
7.3.2 把保护模式的存储器作为数据区使用的程序 329
7.3.3 从MS-DOS访问保护模式存储器的样板程序 338
第八章 EMS和XMS的编程方法 346
8.1 概述 346
8.1.1 IBM PC和PC/XT机存储器空间的分配和扩充 346
8.1.2 IBM PC/AT机存储器空间的分配和扩充 349
8.2.1 EMM编程概要 351
8.2 EMM的编程方法 351
8.2.2 EMS应用程序实例 372
8.3 XMS的编程方法 392
8.3.1 XMS的编程步骤 392
8.3.2 XMS编程实例 398
8.3.3 EMM386.EXE设备驱动程序 403
附录 409
附录A-1 系统调用一览表 409
附录A-2 系统调用说明 413
附录B-1 INT 21H DOS功能一览表 419
附录B-2 INT 21H DOS功能说明 433
附录B-3 MS-DOS 2.11以后版本的DOS功能调用所提供的错误代码 462
附录C 直接调用DOS功能的C函数一览表 464
附录D-1 EMM INT 67h的功能 485
附录D-2 结束状态一览表 502