目录 1
序言 1
参考资料 1
手册中的约定 2
第一章 简介 3
1.1 386|DOS-Extender的版本 3
1.2 环境和兼容性 4
1.4 相关产品 5
1.3 内存术语集 5
第二章 386|DOS-Extender的使用 7
2.1 构造保护模式程序 7
2.2 命令行语法 7
2.2.1 开发版本 8
2.2.2 运行版本 8
2.3 命令行开关 9
2.4.1 常规内存开关 11
2.4 内存管理开关 11
2.3.2 命令文件的使用 11
2.3.1 环境变量的使用 11
2.4.2 扩展内存控制 13
2.4.3 限制应用程序对线性内存的使用 16
2.5 特权级别 16
2.6 混合模式程序开关 17
2.7 GDT和LDT长度开关 18
2.8 协处理器开关(-WEITEK和-CYRIX) 18
2.9 线分配开关 19
2.10 386/387分页出错现场(-NOPAGE和-ERRATAAIT) 20
2.10.1 分页禁止开关 20
2.10.2 80386错误17工作区 21
2.11 386|VMM开关 22
2.12 很少使用的开关 22
2.12.1 硬件结构开关 23
2.12.2 20行地址线开关 24
2.12.5 禁止乘法检查开关 25
2.12.4 保留32位寄存器开关 25
2.12.3 VDISK兼容性开关 25
2.12.6 在VCPI下不运行的开关 26
2.12.7 调试打印输出开关 26
2.12.8 功能调用指针转换开关 28
2.12.9 中断控制转换 28
2.12.10 BIOS块传送开关 30
2.12.11 以非写模式打开EXP文件的开关 30
第三章 程序环境 32
3.1 程序组织 32
3.2 程序段 34
3.3 程序段前缀(PSP) 38
3.4 环境模块 38
3.5 内存分配和再分配 39
3.6 别名段 39
3.7 空指针检测 39
3.11 简单程序范例 40
3.10 组装程序 40
3.9 环境检测 40
3.8 实现对另一程序的装入(EXEC) 40
第四章 硬件访问 43
4.1 特权等级 43
4.2 硬件I/O(输入/输出) 43
4.3 视屏访问 43
4.4 Intel 80287/80387浮点协处理器的编程 44
4.6 Cyrix EMC87浮点协处理器的编程 45
4.5 Weitek浮点协处理器的编程 45
第五章 内存管理 46
5.1 386|DOS-Extender内存模式 46
5.1.1 分页 49
5.1.2 局部描述符表段 51
5.1.3 全局描述符表段 53
5.2 内存分配 53
5.2.1 常规内存的使用 53
5.2.2 直接扩展内存的使用 56
6.1.2 硬中断 60
6.1.3 处理机异常 60
6.1.4 在MS-DOS中使用时要考虑的问题 61
6.2 接管中断 61
6.3 获取和设置中断向量调用 62
6.3.1 获取保护模式中断向量 63
6.3.2 获取实际模式中断向量 63
6.3.3 设置保护模式的中断向量 63
6.3.4 设置实际模式中断向量 63
6.3.5 在保护模式中设置中断以获得控制 63
6.3.6 设置实际和保护模式中断向量 64
6.3.7 获取保护模式处理机异常向量 64
6.3.8 设置保护模式处理机异常向量 64
6.4 编写中断处理程序的基础 64
6.4.2 高级语言接口支持 65
6.4.3 可重入中断处理程序 65
6.4.1 保存寄存器值 65
6.5 保护模式处理程序的中断栈结构 66
6.6 保护模式处理程序的典型策略 68
第六章 中断和异常 68
6.1 386|DOS-Extender标准中断处理 68
6.6.3 返回时改变寄存器内容 69
6.6.2 处理中断然后链接 69
6.1.1 软件中断 69
6.6.1 处理中断并返回IRETD 69
6.6.4 链接到以前的处理程序并重新获得控制 70
6.6.5 保留控制,不再从中断返回 70
6.7 DPMI中的中断标志控制 71
6.8 PC AT兼容性工作场(区) 71
6.8.1 中断IRQ 0-7和处理机异常08h-0Fh 72
6.8.2 硬件IRQ2中断 72
6.8.3 BOUND异常和BIOS屏幕打印系统调用 72
6.8.5 非屏蔽中断(不可屏蔽中断) 73
6.8.4 协处理器中断 73
第七章 实模式和保护模式代码的组合 75
7.1 介绍 75
7.2 程序装入 75
7.2.1 连接实际模式和保护模式代码 76
7.2.2 在保护模式程序中装入执行实际模式的程序 78
7.2.3 在实际模式程序中装入执行保护模式程序 78
7.2.4 两个PSP的保存 78
7.3 在模式之间传输数据 79
7.4 中断控制的传输 80
7.4.1 交互模式过程调用 80
7.4.2 用中断切换模式 82
7.5 典型的程序组织 83
7.5.1 连接实际-保护模式代码到同一个程序 83
7.5.2 由保护模式代码开始 83
7.5.3 由实际模式代码开始 84
7.6 发出任意实际模式系统调用 84
7.7 分配常规内存 85
7.8 保护模式常规内存程序 85
7.9.2 TAIL.ASM鼠标例子程序 86
7.9.1 GDEMO.C图形例子程序 86
7.9 例子程序 86
7.9.3 PTAIL2.ASM鼠标例子程序 100
第八章 兼容性 101
8.1 直接扩展内存分配 101
8.2 允许20行地址 102
8.3 硬件中断的冲突 102
8.4 VCPI接口 102
8.7 Quarterdeck DESQview 386 103
8.8 Windows 3.0 103
8.6 XMS驱动程序 103
8.5 DPMI 103
8.9 常驻内存程序 104
8.9.1 RAM磁盘和磁盘高速缓存程序 104
8.9.2 EMS仿真程序 104
8.9.3 其他常驻内存程序 105
8.10 BIOS和DOS调用 105
附录A MS-DOS功能调用 110
附录B 386|DOS-Extender系统调用 181
附录C BIOS功能调用 246
附录D 库、头文件和80386样板程序 286
附录E 样板中断处理程序 289
附录F 编写与DPMI兼容的应用程序 312
附录G VCPI硬中断和DESQview 316
附录H 零特权级操作 318
附录I 处理器异常 319
附录J PC硬件中断 320
附录K 系统调用中的重入 322
附录L 386|DOS-Extender兼容性 324
附录M 术语汇编 327
附录N 错误信息 340