留個爪,稍后學習
選擇編譯器
nasm?fasm?yasm?還是masm、gas或其他?
前面三個是免費開源的匯編編譯器,總體上來講都使用Intel的語法。yasm是在nasm的基礎上開發的,與nasm同宗。由於使用了相同的語法,因此nasm的代碼可以直接用yasm來編譯。
yasm雖然更新較慢,但對nasm一些不合理的地方進行了改良。從這個角度來看,yasm比nasm更優秀些,而nasm更新快,能支持更新的指令集。在Windows平台上,fasm是另一個不錯的選擇,平台支持比較好,可以直接用來開發Windows上的程序,語法也比較獨特。在對Windows程序結構的支持上,fasm是3個免費的編譯器里做得最好的。
masm是微軟發布的匯編編譯器,現在已經停止單獨發布,被融合在Visual Studio產品中。gas是Linux平台上的免費開源匯編編譯器,使用AT&T的匯編語法,使用起來比較麻煩。
由於本書的例子是在祼機上直接運行,因此筆者使用nasm,因為它的語法比較簡潔,使用方法簡單,更新速度非常快。不過如果要是用nasm來寫Windows程序則是比較痛苦的,這方面的文檔很少。
從nasm的官網可以下載最新的版本:http://www.nasm.us/pub/nasm/releasebuilds/?C=M,也可以瀏覽和下載其文檔:http://www.nasm.us/docs.php。
參考:
http://book.2cto.com/201209/5464.html
http://blog.csdn.net/broadview2006/article/details/8176974
http://blog.csdn.net/broadview2006/article/details/8181182
http://blog.csdn.net/broadview2006/article/details/8058755
編程ING:人人都能學會程序設計
http://blog.csdn.net/broadview2006/article/details/7789622
支撐處理器的技術——永無止境地追求速度的世界
http://blog.csdn.net/broadview2006/article/details/8174696
-----------------------------------------
特別需要補充的兩個開源軟件是:FreeDOS,MiniGUI