是否可以从 nasm 关闭或切断计算机的电源(有区别吗?)。我知道您可以使用它来重新启动:
mov al, 0xFE
out 0x64, al
是否有相当于关闭的方法?我正在制作自己的 16 位操作系统。
不保证您拥有的代码可以正常工作。它依赖于两个事实:
两者都可能不是真的。
以编程方式重新启动或关闭机器的唯一可靠方法是调用相应的 OS API。
调用 OS API(您需要它,因为您正在编写 OS :-))的替代方法是使用 ACPI。并不是所有的机器都支持 ACPI,其中有四种不同的 ACPI 版本。
http://en.wikipedia.org/wiki/Advanced_Configuration_and_Power_Interface?wasRedirected=true
http://www.acpi.info
mov ax, 0x1000
mov ax, ss
mov sp, 0xf000
mov ax, 0x5307
mov bx, 0x0001
mov cx, 0x0003
int 0x15
你可以试试这个代码: -
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