How——如何學習Win32彙編

來源:互聯網
上載者:User

本文節選自《琢石成器——Windows環境下32位組合語言程式設計》一書的前言

 

How——如何學習Win32彙編

    以往的彙編書籍往往把重點放在硬體結構和指令上,講述了一大堆電路框圖和指令列表,把大家搞得暈暈乎乎後,再舉出一些重量級的例子,不是一些像數組、矩陣計算一類的複雜運算,就是開始圖形模式畫圖,以至於大家看完以後就再也找不到北了!實際上,這些例子不是太難了,而是太枯燥了。有人說,學彙編就像考大學,千軍萬馬過獨木橋,太多的人中途放棄了,只有少數人堅持到最後。
    筆者認為:學習彙編應該在輕鬆的環境下進行,在學習中使用的例子不一定太複雜,但一定要有吸引力。用彙編寫複雜的運算程式固然會比C更有效率,但同樣的事在C中用一個運算式就全部搞定了,從這裡開始學彙編,給人的感覺就像從複雜的公式開始學算術,要知道,加法還沒有學會呢!而對於進階語言封裝起來的系統功能,用彙編解釋起來就非常直接,非常自然,也更容易懂。以筆者自己學彙編的過程來說,那時候是1990年,剛好是中國第一次病毒大流行,大家的電腦上都是那個病毒的開山鼻祖——乒乓病毒,在流行DOS的時期,看著在螢幕上蹦的小球,心中就有一個問題:如何編出這樣一個玩意來呢?要知道DOS是單任務的,而那個球在別的程式啟動並執行時候照樣蹦!這用當時流行的FORTRAN、C等課程中學到的任何知識都無法解釋,因為這些課程中不可能有TSR、中斷、引導區等內容。帶著這樣一個疑問學習彙編,在分析乒乓病毒的過程中啃一條條不懂的指令,病毒分析完了,彙編課也學完了,而且反過來看那些複雜的計算程式都是那麼順理成章,不攻自破了。實際上,從一些實用的系統功能開始學習彙編遠比學矩陣計算容易理解。
    正如最經典的C程式就是那個“Hello,World!”一樣,這個程式的有名並不是因為它用高深複雜的語句放倒了一大批人,而是它以最簡單易懂的方式讓人們走入C語言的大門。對於Win32彙編也是如此,從最簡單的例子開始總是沒錯的,筆者建議讀者跟隨本書中從簡到繁的例子,努力做到理解並靈活引用這些例子中的各種功能,正如“熟讀唐詩三百首,不會寫詩也會吟”,最後能夠熟練地使用Win32彙編來解決各種編程需求就是最大的勝利。
    另外,正如前面講到的,組合語言的學習必須和作業系統緊密結合。經過簡單的調查,筆者發現很多高校使用的彙編教程還是停留在清華91版《IBM-PC組合語言程式設計》之類的教材上,雖然這些教材中基礎知識部分永遠不會過時,但涉及作業系統的部分還是停留在DOS階段。隨著DOS作業系統的悄然引退,繼續把精力花在上面是一種浪費,因為任何語言都必須有應用的平台,否則課程學完之後會尷尬地發現沒有地方可以應用。筆者認為,在《IBM-PC組合語言程式設計》之類傳統教材中的基礎部分學習完畢以後,重點就應該轉向Win32彙編,以及保護模式方面的知識。

 

更多精彩資源:
    部落格園:    http://www.cnblogs.com/broadview/
    Web開發專欄    http://blog.csdn.net/broadviewwebdev
    嵌入式    http://blog.mcuol.com/Broadview/index.htm
    程式設計專欄http://blog.csdn.net/broadviewprograming
    資料庫專欄    http://blog.csdn.net/broadviewdatabase
    Phpchina:    http://www.phpchina.com/home/space.php   
    Cn-java:    http://www.cn-java.com/www1/?564186/   
    Itpub:    http://space.itpub.net/13164110/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.