【我所認知的BIOS】—>ADU.exeBy LightSeed2009-5-12 1、概要在學習的過程中,肯定會要用不少的工具,作為底層的engineer那麼用的工具大多是DOS下。在DOS下所用的工具對於一般的人來說(相對於當今流行的圖形介面的操作系統)總是感覺比較陌生,也批著一層神秘的面紗。那麼今天我就以我最常用的ADU.EXE開刀給大家介紹一下它裏面所涉及的東東。主要是我完全模仿ADU也寫了一個工具,所以在此也介紹一下,好做個總結。2、ADU—help這個工具的全稱是Award Doctor Utility簡稱ADU,是一個.exe的可執行文件。該工具的help內容就顯示在第一頁,如圖一: 圖一help介面(也是第一個介面)Help中都是介紹關於快速鍵是哪些的。我就不一項一項去解釋了,相信如果對這個工具有興趣的愛好者這點英語應該能ok的。3、ADU—PCI設備列表and配置空間訪問Press Enter后,直接列出PCI device的list見圖二: 圖二PCI device的list這個介面比較清楚地描述了機器上的所有PCI device的關鍵信息。关于PCI的configuration space直接读出来显示如圖三。 圖三PCI configuration space的截圖正如圖所示,中間的數據是256個byte的配置空間,右邊的信息是對配置空間的相應bit的解析,這樣方便engineer查看。4、ADU—memory訪問MEM其實是memory的相關操作。主要分為real mode和flat mode兩種。關於他們的介紹我會在後續的文章中介紹。介面如圖四: 圖四real mode下讀取的memory數據這個圖中信息比較豐富,start address是以segment:offset的形式輸入的。Expansion Rom表示有一個option rom,它在的segment的高字節。比如說,圖中的option rom所在的地址就是在ram中的C000H:0000H處。Normal Mode表示现在访问的模式是real mode。至於FILE就是指打開指定文件而已。不過是以二進位的形式顯示出來。5、ADU—IO功能IO裏面主要功能如圖五 圖五IO菜單CMOS是CMOS的數據顯示如圖六ISA是對一些特殊端口的數據讀取,他們的操作方式是index和data的操作方式,所以只要是用這種方式訪問的,都可以從這裡輸入,輸出。後面的幾個菜單都是大同小異。 圖六CMOS port的介面6、ADU--SMBUS圖七是SMBUS讀取的介面,關於SMBUS的詳細介紹我會在後續的文章中給出。這裡只是講講ADU這個工具的用途而已。 圖七SMBUS讀取的介面7、ADU--IDEADU還可以讀取IDE device的identify information,并作出相應的信息解析。圖八是它的IDE介面之一。關於IDE的詳細介紹後續文章會繼續。 圖八IDE信息介面之一至此關於ADU.EXE的介紹就算是OK了。8、對ADU的擴展(加入CPU ID和CPU MSR的讀取)我當時在寫這個工具的時候還加入了讀取CPU ID和CPU MSR的功能。截圖見圖九 圖九加入的菜單 圖十CPU ID的介面在CPUID的讀取介面中,下麵有列出幾行信息,這個首先就有掃描CPU ID的輸入的最大值。並且都列了出來,方便engineer在用的時候做對照。而方框中的則是,當EAX輸入相應值回車后EAX~EDX返回值。 圖十一CPU MSR的介面每個介面的最後一行都是對其的說明,要查詢的時候直接輸入即可。以上就是我對ADU這個工具的理解。文章分成兩個部份,第一部份講award提供的工具所包含的功能簡述,第二部份是自己加入的元素。不過整個工具的實現部份,完全是照ADU的功能仿照設計的。由於之前沒有assembly的基礎,寫的程序效率不高,結構也不太好,所以有很多值得提高的地方,待有空的時候我回頭從新寫一次。