我在程序集中編寫了一個簡單的操作系統,但我無法弄清楚如何關閉計算機。程序集中的關閉操作系統
我試着使用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
除非您禁用NMI,否則應該在'cli' /'hlt'周圍進行循環。 – 2016-12-08 20:15:22
複製? http://stackoverflow.com/questions/678458/shutdown-the-computer-using-assembly – jm666 2013-04-29 20:12:39
這個問題根本沒有幫助我,我看到了。 – 2013-04-29 20:15:05
你在使用哪個操作系統? – 2013-04-29 20:20:42