計算機程序設計語言分為三個層次:機器語言、匯編語言和高級語言。
機器語言是用0和1的二進制串表示機器指令代碼的語言,不同的CPU,機器語言是不同的。
由于機器語言指令很難記,程序員用機器語言只在計算機誕生的早期出現過。匯編語言用一些助記符來代替機器語言指令代碼,與機器語言指令代碼是一一對應的,因此也是面向機器的,助記符是幫助人們記憶的符號,方便程序員進行編程。
匯編語言程序設計一般用于對硬件的控制,編程效率較低,但設計出的程序工作效率較高。高級語言接近自然語言,容易學習,編程效率較高。
匯編語言到底怎么學習?匯編語言難學嗎?學習匯編語言要什么基礎嗎?匯編語言的學習從哪里入手?最好是看什么樣的入門書籍?(這里以80X60匯編為基礎)
這些都是匯編語言初學者的普遍疑問,也都是普遍想知道的問題。有的初學者帶著這些問題,利用豐富的網絡資源進行搜索,也許由于網絡上大部分都是高手,或者本來就是有相當基礎的,所以大部分也說不出很明確的答案。為什么這么說了,因為我在剛進行學習的時候,也是在網絡上鋪天蓋地的搜索答案,都沒有找到理想的,還是一片茫然。
我寫這篇文章的目的(以后會把自己的學習經驗和方法慢慢都寫出來,可能會當作日記或者“教程”來發布到自己的博客上,說是教程有點托大了,呵呵!)是想以自己的親身體驗來幫助初學者,同時也為自己的學習留個筆記。
其實網絡上有很多這方面的高手和專業人士,他們寫的文章相當好,但是這些東西對于高手和已經入門的朋友很有用,對于從來沒接觸過的朋友不太適合,看不太明白。我兩年前剛開始學習的時候也是什么基礎都沒有,因為我并不是計算機專業的,可以說我的專業和計算機風牛馬不相及。那時候來學習這些東西,一個是因為對計算機比較感興趣,玩電腦也有10多年了(也只能說是玩,玩游戲倒是比較可以的);另外一個原因說出來有點不好意思了,由于有一段時間喜歡買彩票,但是很多比較好點的彩票軟件都是收費軟件,要注冊的,網絡上也找不到破解版的,為了免費用軟件,不得不去學習破解。(現在想起來當時的想法真垃圾)學破解的基礎就是匯編語言,但是,為了尊重軟件制作者的勞動成果,破解的軟件從來沒有發布過。(現在很少來破解軟件了,確實要很多的精力,同時覺得寫博客更有意思)
上面提到的問題,小天將一一用自己的親身經歷來說明。
一、匯編語言難學嗎?
很明確的告訴大家,不難!這個不難是有一點限定的,你要去學透,那肯定也難,但是只入門,應用到目前的領域中去,還是比較容易的。我不知道大家學習匯編語言的目的是什么,只能大致猜測一下。一是象小天一樣為了去破解軟件(當時很垃圾的想法);二是想了解一下硬件工作原理;三是為了單機片程序的開發;四是為了提高程序的效率,適當插入一些匯編代碼。。。。等等,只要大家不是為了用匯編語言去寫一個比較大的應用程序,那都是不難的,但是如今完全用匯編來編寫程序的,我想也很少很少了,除了個別相當的牛人。除了以前在DOS操作系統普及的情況下,有不少匯編語言寫的程序,但是后來多數也是用C語言來寫了。
二、學習匯編語言要什么基礎嗎?
可以說不要什么基礎,因為我就是在沒有任何基礎的情況下來學習的,(我是屬于比較笨的人了,相信大家比我都要聰明的)可能對于高手和專業編程人員來說,我的學習深度是九牛一毛。但是,用于以前自己來破解程序還是夠了的,筆者要達到的目的也只有這個,學深了也沒有必要,真要學,也學不完。只能作為愛好。也許讀者不是為了破解來學匯編的,但是只是為了入門,也是不要基礎的。如果讀者已經是這方面高手了,那么這些文章,都可以不用看了。因為筆者以后的文章,都只是針對沒有入門的朋友的。
三、匯編語言的學習從哪里入手?
直接從80X60的匯編語言開始學習就可以了,這里也許有的人會提到現在已經是32位操作系統了,甚至是64位操作系統了,怎么還從80X86匯編語言開始。其實,學會了80X86的匯編,對于以后學習WIN32匯編等就容易一些,學破解后來也被逼學了WIN32匯編,而在學WIN32匯編的時候,又學習了C語言。學完之后,才明白,WIN32匯編和C語言聯系比較大,但是學習了80X86匯編對于理解其他的東西有很大的幫助,學起來容易很多。于是,恍然大悟,原來,這些東西也是萬變不離其宗的。
四、最好是看什么樣的入門書籍?
就我的經歷來說,我認為最好的應該是王爽的《匯編語言》,這本書,學完之后,也發現了他的一些不足之處,比如牽涉的面太窄,系統性不太好之類的問題。但是對于初學者,卻相當好,因為初學的朋友,什么都不懂,而這部書,卻恰好屏蔽了不少的知識面。也正是一個道理,廣而不精,精而不廣。正因為它不廣,所以初學的朋友,容易接受。這部書的這些缺點,在你學完這本書后,你可以去看《80x86匯編語言程序設計教程》(楊季文)、《IBM-PC匯編語言程序設計》(沈美明 溫冬嬋 )、Intel匯編語言程序設計(第四版)這些書來彌補,但是你一定要學好了王爽的這部書后,才去看,這樣才能看懂、才好理解,要不你就很可能似懂非懂。把這些書都看了后,看其他的書也就都大同小異了。其實當你看了其中一本后,你就會有這樣的感覺,但是你自己卻在不知不覺中提高了。