小木偶的網頁


我為何寫這個網頁

這個網站終於開張了,這是小木偶第一次把設計的網頁公開,在此之前,我構想寫這個網站已經很久了 ( 大約從民國 89 年吧,即西元 2000 年 ),但是總是有許多原因沒有完成,當然最大的因素是懶惰,昨天 ( 民國 91 年元月 7 日 ) 終於想到乾脆一邊將已寫好的部分公佈,一邊繼續寫,這樣可以鞭策自己早一點寫完。

現在使用者佔最大部分的電腦,其 CPU 幾乎是英特爾或超微所出產的,其上的作業系統大部分是 Windows 95/98/98SE/Me/NT/2K/XP/Vista/7 等,或是最近幾年越來越紅的 Linux,不論那一廠商的 CPU 或者作業系統,最底下執行的還是 80X86 的機械碼。即使是各位所用的 Word、IE、燒錄程式等等所有軟體,最底下執行的,仍然是機械碼。而任何程式,不論是 VC、VB 等等,所編譯後所能執行的也是機械碼。而組合語言是最接近機械碼的語言,它幾乎與機械碼是一對一的關係,所以組合語言可說是最『底層』的語言。雖然有人說,不須如此辛苦,寫程式應像堆積木將別人寫好的拿來用就可以了,不需用組合語言,或許這樣的想法也很好,但是學組合語言自有樂趣,你能感到你深入電腦內部,撫摸它的靈魂……,好像有點走火入魔,此外我想學習撰寫組合語言程式比 C++ 更能訓練您的大腦,假如你想更了解作業系統,組合語言比 C 來得更好。(有關『學組合語言有什麼用?』的爭論,請參考這裡。)

想想美國為何能成為資訊大國?而我們只能做代工?美國吃大魚大肉,我們只吃殘羹剩飯。這是因為我們的基礎,程式設計,不如人太多了。在以前的時代,學電腦的人(包含辦公室的小姐)都必須學程式設計。但是曾幾何時,現在的人所謂的會用電腦,只是用網路聊天、查資料,下載MP3,燒錄光碟等,再來可能有些人會設計網頁,這些只不過拿別人已寫好的程式來用而已,別人的程式有什麼限制,您就無法使用該功能。現在的人所謂學電腦,好像只變成學組裝電腦、學 Word、學Excel等,少聽說學習程式設計。若我國還想在資訊界出人頭地,程式設計絕對是非常重要的一環,但是政府及社會大眾都忽略了,這是很大的隱憂。

最後一項理由是,寫程式可以幫助我們『省錢』。玩電腦,如果不寫程式,我就不知道還有什麼更省錢的方式了,玩電腦遊戲要花錢,而且還得不斷的花錢買遊戲,尤其是線上遊戲,使用者被剝了四層皮 ( 網路費、軟體、點數、生命 ) 而不自知;玩硬體,那更花錢了;燒錄?你燒了那麼多軟體、音樂、電影,真的值得收藏嗎?有時間靜下心來欣賞嗎?燒錄來源有沒有違法?這些可能是常燒錄的人需要考慮的。只有寫程式,僅需很簡單的配備,就可以藉由寫程式消磨一兩個星期,其成就感更勝於電腦遊戲,而且別人不會,我卻會,你說還有那一項比寫程式更值得『玩』下去?


這個網頁有那些內容

這個網站的內容主要是有組合語言程式設計教學或小木偶空閒時用組合語言撰寫的程式。什麼是『程式設計』呢?對於不了解程式設計的人來說好像很難解釋得清楚什麼是『程式』。此處,小木偶舉幾個例子說明。所謂程式,就像你在『開始』堙A選擇『 Microsoft Word』,電腦就會執行『Word』,可以讓你做文書處理,如果你選擇『CD 播放程式』,那麼你就可以聽到由光碟機所放出來的音樂,『Word』、『CD 播放程式』都是一種程式,而你在『Word』堜瓵擗J的文章,光碟片上的音樂都是一種資料,我們可以說程式是處理資料的方法,程式設計就是人們依照資料要如何處理,一步一步的把處理的過程依一定的規則寫進電腦,而後電腦就會按照我們原先規劃好的步驟處理資料。

在電腦中,一般都是用『語言』來撰寫程式,常見的電腦語言有『C/C++』、『BASIC』、『PASCAL』等等,每一種語言都有自己的規則,設計者。但是小木偶最鍾情組合語言,雖然組合語言已經算是式微的語言,你可以『看見』資料在電腦中如何一步一步的被處理,你可以想像資料如何在電腦堙y流動』,電腦的 CPU 如何去處理它。

組合語言教學是這個網站的主要內容,從數字進位、堆疊的觀念到記憶體位址都有提到,當然還包含輸出輸入,將來我還打算寫一些有關浮點運算器,這部份在國內似乎沒有看到有人寫過,這是很可惜的(昨天(民國91.2.1)在書局看到知城出版社陳邦傑先生新出了一本書,其中有提到)。除此之外若還有些時間,我再把收集到有關在 Win32 環境下寫組合語言的資料寫一寫,雖然我還不會寫用組合語言寫 Win32 的程式。

除了組合語言外,我還打算將部分國中理化的舊教材寫在這個網頁上。前幾屆的國中生開始使用新教材,新教材雖然簡化了許多困難的部分,但是對於中上程度的人來講,多學一些不是太大的負擔而且也不是壞事,同時也有助於以後高中對物理、化學的學習。