Assembly 如何在自定义操作系统的程序集中关闭acpi?
我正在virtualbox中运行一个自定义操作系统,并解析了ACPI、FACP、DSDT等表以获得PM1a_CNT和SLP_TYPa值。这些似乎是正确的。但是,当我尝试关闭ACPI时:Assembly 如何在自定义操作系统的程序集中关闭acpi?,assembly,virtualbox,shutdown,acpi,dsdt,Assembly,Virtualbox,Shutdown,Acpi,Dsdt,我正在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,它是零,所
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是否存在使其正常工作的问题或技巧 除了向16位I/O端口写入32位值之外,所有内容看起来都是正确的。尝试将最终的
out dx,eax
替换为out dx,ax
是的,我最初使用的是ax,不起作用,所以我尝试了eax。粘贴代码时忘记将其更改回原处。将修复它。所以更改它并不能修复您的问题?不,就像我说的,我最初使用的是ax,但它不起作用