現在學彙編語言有用處嗎?

小白娛樂君

學習彙編的好處

我認為目前的主流語言編譯器的優化已經足夠好了,製作大部分程序的運行效率應該不會比彙編語言編出來的程序差多少。但是對於某些特殊的時候,我們可以通過會變調用CPU的專用硬件指令來達成目標。

我認為如果精力允許的條件下學習彙編還是很有必要的。因為學習彙編你能更加理解計算機,這對程序員的進階有極大的促進作用,對於那些彙編高手來說,看程序的彙編代碼的時候,就很容易聯想出C++或其他自己擅長的語言的代碼。

彙編的應用場景

現在嵌入式開發與硬件驅動開發比較火爆,在一些性能高的場景下,常常需要和彙編混編的,所以理解彙編尤為重要!對於就業也是一種優勢!

還有程序的破解...一定要有彙編的基礎,因為用反編譯器(例如OD)編譯出來的都是彙編代碼,有了彙編基礎這樣才能讀懂彙編對應的程序代碼。

總結

當然這都是在自己精力允許的條件下可以嘗試學習下,如果實在沒精力的話不學習彙編語言也不是不行,現在主流的編程語言越來越完善,而且都有向底層發展的趨勢。不斷學習自己擅長的語言未來足夠可以製作出絕大部分程序了。


有喜歡編程技術的可以關注我,為大家奉獻更多編程技術文章!


技術小成

彙編是低級語言,功能非常強大,寫出來的軟件執行效率很高,因為它直接和硬件打交道,正因為如此,所以做開發比較難,比較麻煩。先說說彙編和普通的編程什麼關係,有句話是這麼說的,機器(機器語言)生彙編,彙編生B(B語言),B生C(C語言),C生萬物(java、Python、C++等等)。

那麼彙編的優勢是什麼?這裡舉一個不是很恰當的例子:彙編是你的手,高級編程語言,比如java,Python。是洗衣機。開發一個軟件或者遊戲就是洗一大堆衣服。用手洗衣服,要麻煩的多,但是洗的更乾淨(這裡僅僅是舉例,不要抬槓,意思是好好洗的時候確實手洗更乾淨些),用洗衣機洗就快的多了,但是沒有手洗的乾淨。當你開發一個軟件的時候,工程量是很大的,也就是洗一大堆衣服的時候,你是選擇用洗衣機還是用手洗呢?

所以引出結論,普通的公司,大部分的項目,只需要用高級語言就行,普通的軟件都是這麼做出來的,用例子來說也就是用洗衣機洗洗就好了,各大賓館就是這麼幹的。如果是很牛逼的公司,是高級語言和彙編結合著用,就是執行效率很低的部分,用匯編來寫,提高程序的效率,比如QQ的主體部分是用高級語言編寫的,但是某些部分就用到了彙編,用於提高它的執行效率。用例子來說就是某些非常高檔的賓館,他們的鋪蓋都是先用洗衣機洗完,有些部分不是很乾淨,再用手洗一次。還有就是和硬件打交道的地方,開發驅動程序的時候,比如顯卡驅動網卡驅動,這裡很大一部分需要用到彙編,舉例子就是某些非常高檔的衣服,必須手洗。到這裡詳細大家都明白這個彙編的用處了。

咱們在第一段說了這些語言的先後順序,同時也是他們的執行效率排名,由前到後,執行效率依次遞減。機器語言就是你親自幹活,彙編就是你親自指揮幾個人幹活,C就是你指揮中層,中層再指揮底層幹活的人幹活,以此類比,越高級的語言執行效率越低,但是你需要做的事情也是越來越少。

對於某些大公司來說,彙編是有需求的,對於小公司來說,沒必要。至於學習,有時間的話肯定多學點好,當別人都不會你會的時候,你就是無可取代的,當你做到了無可取代,你就有了談條件的資本,或者同樣的一個軟件,你通過彙編優化了一下,執行效率提高了,那用戶體驗肯定也就提高了,這個也是優勢啊。

反彙編(破解軟件)也是需要你懂彙編的,逆向工程在我看來很複雜,就是因為我不怎麼會彙編。大公司需要反彙編的人才,據稱,華為就是通過反編譯思科的源程序做出來的路由交換的系統,當然也有說是從黑客手裡購買的思科的源代碼(這裡不作討論)。

不過話說回來,彙編太難了,確實太難學了,計算機專業的學生應該都知道,微機原理這課程包含彙編的一點非常基礎的知識,並且實現的功能都非常的簡單,這個基礎的知識就夠一些人頭疼的了。何況深入研究。如果有精力有時間,可以學,學好了是大神,學不好也不吃虧。


黑客入門學習

彙編語言(assembly language)是一種用於電子計算機、微處理器、微控制器或其他可編程器件的低級語言,亦稱為符號語言。



彙編語言依賴於設備,和機器語言一一對應,具有平臺化不可移植特性。正因如此,可具有代碼直接性、高效性。

今時今日,彙編語言主要用於底層,硬件操作,高要求的程序優化。在嵌入式領域,少數微控制器(如單片機)還可能使用匯編全編程,大多數都是用來做程序優化,尤其是算法優化。



在嵌入式領域,彙編語言是高級程序員應當掌握的語言之一。



謝謝大家。


宏思微想

現在從事彙編語言的崗位相對比較少,如果是從就業的角度考慮不建議直接去學習彙編,但是從建立知識體系的角度還是值得去學習。

學習彙編語言的幾個好處:

1.能更好的理解計算機體系結構

2.在某些領域能夠極大的提升性能

3.方便從底層分析問題所在,特別是在解決某些程序崩潰

希望能幫到你


大學生編程指南

因為彙編語言是直接向CPU發送指令的,是操控計算機硬件的語言。能學會彙編語言,編程思想上能有一個很大的進步,再接觸高級編程語言後,就會非常容易理解。而且彙編語言即使很簡單的功能也需要按計算機的邏輯一步一步寫出來,不像高級語言一樣有那麼多語法和庫讓你“偷懶”,寫一遍很鍛鍊編程基礎。

現在的高級語言越來越多,所以實際中能接觸到彙編語言不多,嵌入式開發,編譯工具,高級語言的開發等場景會用到。建議不是這些特定場景的話,學下彙編語言的基礎,如果遇到主用匯編語言的項目,就要深入學習啦。


程序員寧軍

你好作為一個正在努力學IT的我

我認為學彙編語言好處在於如果你準備從事硬件開發的工作,那這門語言是必不可少的

而且在IT行業裡有句話就是搞硬件越老越吃香,在現在這個行業形勢搞硬件是一個很穩定的職業。


分享到:


相關文章: