2

我在 virtualbox 中运行自定义操作系统,并解析了 ACPI、FACP、DSDT 等表以获取 PM1a_CNT 和 SLP_TYPa 值。这些似乎是正确的。但是,当我尝试通过以下方式关闭 ACPI 时:

xor eax, eax
mov edx, [PM1a_CNT]
mov ax, [SLP_TYPa]
or ax, (1 shl 13)
out dx, ax 

什么都没发生。PM1a_CNT是 0x4004 并且SLP_TYPa是 0,与我在其他地方看到的其他值相比,这似乎是合理的。我还检查了 PM1b_CNT,它是零,所以我不打扰它。

virtualbox 是否存在问题或技巧来使其正常工作?

4

1 回答 1

2

除了您将 32 位值写入 16 位 I/O 端口之外,一切看起来都正确。尝试out dx, eaxout dx, ax.

于 2016-09-21T00:35:07.307 回答