我是大會世界的新手,如何通過16位x86實模式的BIOS訪問USB端口?
我想寫一些彙編代碼與串行,並行,VGA,鍵盤等硬件設備進行通信。
我在x86處理器的真實模式下執行此操作時,通過從我自己編寫的用於加載我的彙編代碼的boostrap啓動我的代碼。
嗯,據我所知,我從閱讀教程中收集到的信息,最簡單的方法是使用BIOS INTs服務程序(ISR),另一方面最長的方法是訪問硬件的不同寄存器,例如:串行端口的狀態寄存器和控制寄存器....
問題1:我說得對嗎?
我可以使用BIOS INTs與VGA和串行硬件進行通信,但是我找不到USB控制器的任何BIOS中斷。?!第二季度:你能幫我在這個能夠與USB端口和其他剩餘的端口進行通信,只是使其通用?
Q3:
爲什麼你想在程序集中編碼?你爲什麼不在代碼上面操作系統(即Linux的某個程序)?你的目標是什麼(學習彙編,編寫操作系統)?今天的編譯器生成的彙編代碼比大多數人可以編寫的代碼更好。 –
這就像一部看到人類與恐龍搏鬥的電影。隨着時代的不合時宜,USB在32位操作系統普及之後很久就被髮明出來。從來沒有16位的支持,沒有意義。 –
OP的問題很嚴重。我認爲答案是「如果安裝了某些軟件,你爲什麼不以某種方式做。」作爲彙編程序員,即使軟件是OS或BIOS,也幾乎不會假定已安裝任何軟件。考慮你正在寫一個BIOS模塊。 – xmllmx