我正在用汇编语言编写一个简单的操作系统,但我不知道如何关闭计算机。
我试过这样hlt
使用
.shutdown:
mov si, msg_shutdown
call print_string
hlt
但它不起作用。我知道这int 19h
会重新启动计算机,但是否有关机中断?
我会很感激一些帮助。谢谢。
我正在用汇编语言编写一个简单的操作系统,但我不知道如何关闭计算机。
我试过这样hlt
使用
.shutdown:
mov si, msg_shutdown
call print_string
hlt
但它不起作用。我知道这int 19h
会重新启动计算机,但是否有关机中断?
我会很感激一些帮助。谢谢。
hlt
只暂停 CPU 直到发生中断。
cli
hlt
可以做你想做的。您可能还希望禁用 NMI,但我认为如果我们获得 NMI,无论如何我们都会遇到大麻烦。您可能还希望启用中断,如果用户点击“esc”或类似的,则重新启动,否则返回hlt
. 如果你真的想关闭电源......嗯,那就更复杂了......
编辑:重新阅读您的问题,我猜您确实想关闭电源(?)。看看这里:http ://wiki.osdev.org/Shutdown
重启 :
reboot:
jmp 0xffff:0000h
关闭 :
shutdown:
mov ax, 5307h
mov cx, 3
mov bx, 1
int 15h
停 :
halt:
cli
hlt