LLM 解释
DOS4GW 处理 INT 21H 的机制涉及保护模式与实模式的切换,具体流程如下:
-
保护模式下的中断捕获
DOS4GW 作为 DPMI 服务器运行于保护模式,通过 IDT(中断描述符表)重定向 INT 21H 向量至自身处理例程。当应用程序执行 int 21h
时,CPU 并非直接进入 V86 模式,而是触发保护模式下的中断处理。
-
模式切换决策
DOS4GW 首先检查 INT 21H 功能号:
-
保护模式兼容功能(如 DPMI 扩展调用 0x31):直接在保护模式内处理,无需切换。
-
传统实模式功能:DOS4GW 需切换至 V86 模式以调用实模式 DOS 内核。
-
V86 模式转换与执行
对于需实模式处理的调用,DOS4GW 执行以下步骤:
- 保存当前保护模式上下文(寄存器、段选择子)。
- 建立 V86 模式执行环境(设置 VM 标志、模拟实模式段寄存器)。
- 将 INT 21H 指令“注入”V86 环境执行,由实模式 DOS 处理。
- 完成后恢复保护模式上下文,将结果返回应用程序。
-
关键技术点
-
DPMI 规范支持:DOS4GW 遵循 DPMI 1.0 标准,通过
INT 31H
提供模式切换接口。
-
效率优化:频繁调用的 INT 21H 功能可能被缓存或模拟,减少模式切换开销。
-
内存隔离:V86 模式下通过页表限制实模式代码访问范围,确保保护模式内存安全。
结论:INT 21H 并非直接触发 V86 模式,而是由 DOS4GW 根据功能类型动态决定处理方式,V86 模式仅用于需要实模式环境的传统 DOS 系统调用。这种设计既保留了 DOS 兼容性,又充分利用了保护模式的内存管理能力。