深入探究虚拟 8086 模式:数据结构与虚拟标志寄存器详解
在计算机系统的运行中,虚拟 8086 模式(vm86 模式)扮演着重要的角色。它允许 32 位保护模式的处理器运行 16 位的 8086 程序,为旧程序的兼容运行提供了可能。本文将详细介绍 vm86 模式下的数据结构以及虚拟标志寄存器的相关知识。
1. 数据结构相关
1.1 位使用情况
- 第 2 位:DOS 调试器会使用该位,它指定 8086 程序以单步模式运行。
- 第 3 - 30 位:这些位未被使用。
- 第 31 位:用于区分
vm86plus_info_struct是否有效。当该位被设置时,表示vm86plus_info_struct中的数据是有效的。
1.2 中断位图
有一个数组作为位图,为 256 个中断各提供一个条目。DOS 调试器会在 32 位保护模式下,将其想要自行处理的任何中断对应的位设置。
1.3 扩展结构
扩展结构与之前提到的结构类似,只是增加了第 132 行。
1.4 栈布局
用户提供的数据结构会保留在用户地址空间,而内核栈上会构建其略微扩展的版本。在 32 位保护模式下,标准的栈布局是struct pt_regs。在 vm86 模式中,寄存器只有 16 位宽,但通过使用填充字段