我一直在研究一種關閉計算機而不切換到16位實模式的方法。我無法在32位保護模式下調用BIOS功能。雖然我一直在尋找關於這方面的信息近一週,但我一直沒能找到任何能夠正確工作的文檔或源代碼。因爲我對低級編程非常陌生,所以我懷疑不切換到實模式就不能關閉計算機。是嗎?謝謝。如何在32位保護模式下關閉機器
回答
您需要使用高級配置和電源接口 - ACPI - 爲此。 ACPI是一組龐大而複雜的結構和接口,用於處理諸如電源狀態,電池電量,關機,設備省電等事物。如果你正在開發一個操作系統,你必須編寫一個驅動程序來設置ACPI及其表格,以便你可以乾淨地關閉計算機。
我不確定如何直接在Linux下使用ACPI,而且我幾乎肯定Windows甚至不允許您直接對ACPI執行任何操作。
http://uefi.org/specifications以下是由UEFI論壇維護的ACPI規範的鏈接。祝你好運,神速。
謝謝。我已經找到一些關於ACPI的信息,但是我無法使它工作。我需要一個初學者教程或一個解釋性的源代碼。 – user2972185 2014-09-19 22:17:22
好吧,只要'outw(0xB004,0x00002000)'關閉了機器,而'outb(0x64,0xFE)'重新啓動它。謝謝。 – user2972185 2014-09-23 13:48:03
公平的警告,魔術失敗(0xB004,0x2000)關閉**只**在qemu和bochs中起作用。我很確定它在VirtualBox或VMWare中不起作用,並且我確信沒有物理芯片組支持它。 – 2014-09-24 15:32:57
- 1. X86切換到32位保護模式
- 2. IE.navigate2失敗,保護模式關閉
- 3. Android手機,什麼單位被關閉在睡眠模式下
- 4. x86 32位保護模式:從調用堆棧讀取?
- 5. 永久運行在32位模式下
- 6. 在32位模式下打開
- 7. 運行Python 64bit在32位模式下?
- 8. 在32位模式下打開Xcode 4.3.1
- 9. MicroSD卡:如何關閉寫保護
- 10. 如何關閉整數溢出保護?
- 11. 如何關閉Glibc運行時保護?
- 12. 在守護進程模式下運行時關閉ElasticSearch
- 13. 如何在原生模式下關閉模式
- 14. 在64位機器上以32位模式運行Oracle客戶機
- 15. 如何以編程方式檢測64位或32位機器?
- 16. 如何在32位模式下使用PyCharm
- 17. 如何在32位模式下編譯WCF服務庫?
- 18. 如何從一個批處理文件,在32位模式下
- 19. 如何使用dtexec.exe在32位模式下執行包?
- 20. NASM在保護模式下繪圖
- 21. int 13h在Windows保護模式下?
- 22. Redis正在保護模式下運行
- 23. 如何關閉模式關閉popovers?
- 24. 如何在64位機器中保存8位bmp圖像?在32位機器上運行得很好
- 25. 關閉堆棧保護
- 26. 保護模式可以通過內聯彙編關閉嗎?
- 27. 關於硬件驅動程序在保護模式下
- 28. 關於間接JMP問題,在保護模式下
- 29. 如何從x64模式的windows下的現有32位進程獲得32位堆棧限制/ 32位TEB/TIB?
- 30. 如何讓Azure計算仿真器在32位模式下運行?
計算機運行操作系統。操作系統支持關機。在使這個變得複雜的時候沒有什麼意義,它並不像它會得到很多的使用:) – 2014-09-19 16:46:37
好吧。由於電腦運行操作系統,因此不需要學習任何東西。 – user2972185 2014-09-19 16:52:39
瞭解如何對操作系統進行編程。學習的好技巧。攻擊16位代碼不是一項技能,它在20年前變得無關緊要。 – 2014-09-19 17:07:40