光盤引導(dǎo)文件(bin文件)作者:liuyuanbo 來源:原創(chuàng) 時間:2011-5-27 10:17:10 用UltralEdit做啟動光盤的時候需要光盤引導(dǎo)文件bin文件。這個bin文件通常是靠UltralEdit從現(xiàn)存的光盤上抓取的。這個bin文件可以自己用匯編語言自己做。 bin文件是純二進(jìn)制機器碼文件,又稱內(nèi)存映像文件,exe文件也是二進(jìn)制文件,但是exe還包括文件頭,包含更多的信息,而bin文件中的二進(jìn)制碼全部是機器碼或機器碼使用的數(shù)據(jù)。 bin文件只允許程序有一個段--代碼段,此規(guī)則使得bin文件最好用匯編編寫,因為c++等高級語言寫的程序編譯后都包含多個段(代碼段,堆棧段,數(shù)據(jù)段)。匯編編譯器編譯后是exe文件(GNU編譯器可直接編譯成bin),因此需要exe2bin來轉(zhuǎn)換。包含多個段的程序exe2bin轉(zhuǎn)換不了。 生成bin文件后,讓UltralEdit使用這個bin文件做啟動光盤。這樣帶啟動功能的光盤ISO就做成了。至于下面要做什么,你自己在bin文件里寫。 下面說說啟動過程,光盤放入光驅(qū)后,開機,Bios會檢查光盤第17個扇區(qū),檢測是否是可引導(dǎo)光盤(這些都是UltralEdit完成的工作,具體的光盤格式請看iso-9660標(biāo)準(zhǔn)),bios檢測到是引導(dǎo)光盤就把bin文件導(dǎo)入到內(nèi)存7c00處。導(dǎo)入完成后,只有cs段和ip寄存器是正確的數(shù)據(jù)(因為bios把bin文件到入到內(nèi)存后,會jmp到7c00處執(zhí)行bin文件,即cs:ip指向7c00),其他寄存器都需要初始化。 |
|