學習彙編踩過的坑及優秀彙編教材推薦

1. 引言

在學校時沒有好好的學好彙編這門重要的基礎課程,總是聽很多老師說這門課程工作後很少用到,有衆多C,C++,JAVA等等高級語言。於是乎,這門課程草草結束,也沒有幾個學懂,即使有幾個同學有心學習,也是苦於晦澀難懂的教材,無從下手。於是與之相關的計算機系統結構,編譯原理,操作系統等等一衆計算機核心基礎課,甚至連C語言,C++語言也沒法深入理解,沒法從根本上理解,導致了後續一連串的計算機課程沒深入下去,只能在應用層開發上打轉轉,今天學習這個框架,明天學習那個框架,疲於奔命。本人在學習過程中,也是踩過很多坑,一遍又一遍的,翻閱了衆多大師的原版教材後,明白了很多,現在來說一說踩過的坑。

2. 國行教材誤人子弟

陶寶亞馬遜等網上一搜“彙編”,瞬間出來若干頁彙編教材,存細一看,寥寥一兩百頁的大把,我不知道是紙貴還是講不清楚,這樣的教材還冠以“規劃教材”等各種名頭,而且大都還以講解16位彙編爲主,32位cpu都出來二三十年了,還抱着老古董不放!別跟我說他們區別不大,學好了16位自然就會32位了!區別可大了,會了16位你不認真學32位,你一樣不會!而且現的操作系統,不再支持實內存模式了,學個彙編還裝個虛擬機,有那個必要嗎?別跟自己的不思進取找藉口。

再說說這些教材的風格,一來就是列舉指令,也不講清楚,也不把這些指令的全稱列出來,方便記憶,不講解其來龍去脈,不舉例子或者舉一個不能執行的例子,還都是從別的書上網上抄來的。計算機是一門實踐性很強的學科,編程語言更是如此,光列幾個概念有什麼用?而且沒有把彙編語言的背景和範圍講請楚,讓初學者一上來就一頭霧水,這就給學生一個錯覺:彙編語言非常難學!這些教材幾乎都只講到了整數的彙編,對浮點數彙編隻字不提,那怕你提一句話, 也可以給初學者一個提示,原來整數彙編和浮點數彙編還是不一樣的。

因此,國行版彙編教材就沒有幾本優秀的教材,包括清華那本也有很多地方講的不清楚。

    另外,部分英語原版教材被翻譯成中文出版後,語句不通,或者語句翻譯錯誤,或者曲解作者的意思,或者自作聰明的作一些不恰當的修改。翻譯的人本身就不精通匯編語言,或者語言能力不過關,活活把一本好書翻譯爛,這其中不乏掛着各種頭銜的專家教授。治學是需要細心,細緻,準確的,不能搞得這樣錯誤百出。

如此種種,學習彙編語言最好是選擇國外大師編寫的優秀教材,最好是看原版的,就算你英文不過關,最好也找一本原版的對照閱讀,必要的時候可以幫你糾正一下,少走彎跳。

3.  優秀的彙編教材和CPU開發手冊

3.1 <<The Intel Microprocessors>>  8th Edition

作者:BARRY B. BREY

本書大而全,目前最新版爲第八版,講解的比較細緻,例子也比較多,而且與時俱進,應該是彙編領域數一數二的教材了,個人認爲學習彙編語言,首推這本。好像沒有看到影印版的英文版,不過有電子版。

3.2 << Assembly Language for X86 Processors>> Seventh Edition

作者:Kip Irvine

本書最新版爲第七版,本書講解的內容包括16位,32位,64位。以masm編譯器爲平臺,例子比較多,作者自己寫了很多代碼,可以從他的網站下載,很容易上手。內容也是講解的比較細緻,包括浮點彙編和高級語言諸多內容。本書最新版也是沒看到影印版,但是前幾版有影印版,可以下載電子版。其中文版也是翻譯的問題多多,不忍直視。

3.3  << Modern X86 Assembly Language Programming: 32-bit, 64-bit, SSE, and AVX>>

作者:Daniel Kusswurm

     本書對後續新增的寄存器彙編講解比較多,高精度,浮點彙編,多媒體等等,正如其書名,現代彙編。也是一本深入學習的不二教材,實踐代碼比較多。

3.4  << Professional Assembly Language>>

作者:chard Blum 

本書有英語版,是一本講解linux環境下彙編的書,內容全面,也講到了浮點彙編。講解力求全面,細緻,深入淺出,有講解有例子,可操作性強,也是一本不可多得的教材。

3.5 Intel CPU開發手冊

https://software.intel.com/en-us/articles/introduction-to-x64-assembly

https://software.intel.com/en-us/articles/intel-sdm

 

3.6  AMD CPU開發手冊

https://developer.amd.com/resources/developer-guides-manuals/

3.7  關於MASM 的文檔 

https://docs.microsoft.com/en-us/cpp/assembler/masm/microsoft-macro-assembler-reference?view=vs-2017

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章