我在汇编中编写了一个简单的操作系统,但我无法弄清楚如何关闭计算机。
我试过像这样使用hlt
.shutdown:
mov si, msg_shutdown
call print_string
hlt
但它不起作用。
我知道int 19h
会重启计算机,但是有关闭中断吗?
我会感激一些帮助。感谢。
答案 0 :(得分:0)
hlt
仅在发生中断之前停止CPU。
cli
hlt
可能会做你想要的。您可能还希望禁用NMI,但我认为如果我们获得NMI,我们无论如何都会遇到大麻烦。您可能还希望启用中断,如果用户点击“esc”或某些内容,则重新启动,否则返回hlt
。如果你真的想要关闭电源......嗯,这更复杂......
编辑:重新阅读你的问题,我想你确实想要关闭电源(?)。环顾四周:http://wiki.osdev.org/Shutdown
答案 1 :(得分:0)
重启:
reboot:
jmp 0xffff:0000h
关机:
shutdown:
mov ax, 5307h
mov cx, 3
mov bx, 1
int 15h
停止:
halt:
cli
hlt