Assembly 什么';在x86处理器中,虚拟8086模式和实地址模式的区别是什么

Assembly 什么';在x86处理器中,虚拟8086模式和实地址模式的区别是什么,assembly,x86,real-mode,Assembly,X86,Real Mode,在维基百科中,虚拟8086模式的解释是 在80386微处理器和更高版本中,虚拟8086模式(也称为 虚-实模式、V86模式或VM86)允许执行实模式 无法在保护模式下直接运行的应用程序 处理器正在运行受保护模式的操作系统 我认为这意味着虚拟8086模式可以访问系统内存和硬件设备 以及实地址模式的解释 实模式,也称为实地址模式,是所有设备的操作模式 x86兼容的CPU。实模式的特点是20位分段 内存地址空间(正好提供1个MiB的可寻址内存)和 对所有可寻址内存、I/O地址的无限制直接软件访问 以及

在维基百科中,虚拟8086模式的解释是

在80386微处理器和更高版本中,虚拟8086模式(也称为 虚-实模式、V86模式或VM86)允许执行实模式 无法在保护模式下直接运行的应用程序 处理器正在运行受保护模式的操作系统

我认为这意味着虚拟8086模式可以访问系统内存和硬件设备

以及实地址模式的解释

实模式,也称为实地址模式,是所有设备的操作模式 x86兼容的CPU。实模式的特点是20位分段 内存地址空间(正好提供1个MiB的可寻址内存)和 对所有可寻址内存、I/O地址的无限制直接软件访问 以及外围硬件。实模式不支持内存 保护、多任务或代码特权级别

我认为他们之间没有区别。
有人知道吗?

Virtual-x86是在保护模式下工作的实地址模式。

Virtual-x86是在保护模式下工作的实地址模式

我认为这意味着虚拟8086模式可以访问系统内存和硬件设备

不,不是真的。在虚拟8086模式下,还有一个保护模式操作系统(设置虚拟部件的操作系统)在后台运行,决定您可以访问哪些内存和设备。一些设备也可能是虚拟的,并由系统模拟。例如,旧的图形卡

在实模式下,程序直接在实硬件上运行——就像在最初的8086中那样(这是唯一的模式)。即使有像PC-DOS这样的操作系统,应用程序仍然可以无限访问所有硬件和内存。当然,它可以轻易地摧毁一切

我认为这意味着虚拟8086模式可以访问系统内存和硬件设备

不,不是真的。在虚拟8086模式下,还有一个保护模式操作系统(设置虚拟部件的操作系统)在后台运行,决定您可以访问哪些内存和设备。一些设备也可能是虚拟的,并由系统模拟。例如,旧的图形卡


在实模式下,程序直接在实硬件上运行——就像在最初的8086中那样(这是唯一的模式)。即使有像PC-DOS这样的操作系统,应用程序仍然可以无限访问所有硬件和内存。当然,它很容易使一切崩溃。

一个简单的解释是,在实模式下,一切都在环0(主管模式)中运行,任何中断或异常都使用实模式语义。运行虚拟8086模式的代码在环3(用户模式)中运行,任何中断或异常都使用受保护模式语义发生。一个简单的解释是,在实模式中,所有内容都在环0(主管模式)中运行,任何中断或异常都使用实模式语义。运行虚拟8086模式的代码在环3(用户模式)中运行,任何中断或异常都会使用保护模式语义发生。如果我的内存正常,处理器不进行重置就不可能从保护模式切换到真实模式。286上是这样的,@Jeremy,因此您的内存不会完全失败。:-)386使退出保护模式和返回真实模式变得更加容易。基本上,您可以更改段寄存器,禁用A20行,并清除CR0寄存器中的PE位。不需要丑陋的CPU重置解决方案。我相信CPU重置解决方案之所以流行是因为它的速度(速度足够快,甚至可以在上下文切换中使用)。Dave在Dave's Garage的视频中谈到了这一点,他引用当时的差异大约是15毫秒,而不是800微秒。引用:如果我的记忆正确,处理器不重置就不可能从保护模式切换到真实模式。286上也是如此,@Jeremy,所以你的记忆并没有完全让你失望。:-)386使退出保护模式和返回真实模式变得更加容易。基本上,您可以更改段寄存器,禁用A20行,并清除CR0寄存器中的PE位。不需要丑陋的CPU重置解决方案。我相信CPU重置解决方案之所以流行是因为它的速度(速度足够快,甚至可以在上下文切换中使用)。Dave在Dave's Garage的视频中谈到了这一点,他引用当时的差异大约是15毫秒,而不是800微秒。引用: