是否有可能从nasm关闭或杀死电源(是否存在差异?)。我知道你可以用它来重启:
mov al, 0xFE
out 0x64, al
是否有相同的关闭? 我正在制作自己的16位操作系统。
答案 0 :(得分:1)
您所拥有的代码无法保证正常运行。它依赖于两个事实:
两者都不是真的。
以编程方式重新启动或关闭计算机的唯一可靠方法是调用相应的OS API。
调用OS API(您需要,因为 编写操作系统:-))的替代方法是使用ACPI。并非所有机器都支持这些ACPI,有四种不同的ACPI版本。
http://en.wikipedia.org/wiki/Advanced_Configuration_and_Power_Interface?wasRedirected=true
http://www.acpi.info
答案 1 :(得分:0)
您可以尝试以下代码: -
shutdown_sucess:
mov ax, 5301h ; Connect to the APM
xor bx, bx
int 15h
je near continue_connection ; Pass if connected
cmp ah, 2
je near continue_connection ; Pass if already connected
ret ; Bail if fail
continue_connection:
mov ax, 530Eh ; Check APM Version
xor bx, bx
mov cx, 0102h ; v1.2 Required
int 15h
ret
答案 2 :(得分:0)
mov ax, 0x1000
mov ax, ss
mov sp, 0xf000
mov ax, 0x5307
mov bx, 0x0001
mov cx, 0x0003
int 0x15