我可以更改CPU模式以读取内存吗?

问题描述 投票:0回答:1

我可以以编程方式更改CPU模式吗? (例如,从保护模式到实模式。)

我想读取Visual Studio中的内存,但出现访问错误。 (因为处理器处于保护模式?)

我该怎么做?

c++ assembly memory cpu
1个回答
0
投票

要切换为实模式,您的代码必须:

  • 具有足够高的特权(“ CPL = 0”)。对于大多数操作系统(例如Windows),这主要将其限制为“仅内核”。

  • 正在以实模式(在物理地址空间的前1 MiB中)访问的内存中运行。否则,一旦进入实模式,您将崩溃,因为CPU无法访问您的代码。

对于所有可能切换到实模式以访问内存(并可能从实模式访问内存的情况);也可以在不切换到实模式(例如更改段和/或页表)的情况下访问内存,从而减少麻烦并提高性能。

© www.soinside.com 2019 - 2024. All rights reserved.