謝邀。且聽我慢慢道來。
匯編是低級語言,功能非常強(qiáng)大,寫出來的軟件執(zhí)行效率很高,因?yàn)樗苯雍陀布蚪坏溃驗(yàn)槿绱耍宰鲩_發(fā)比較難,比較麻煩。先說說匯編和普通的編程什么關(guān)系,有句話是這么說的,機(jī)器(機(jī)器語言)生匯編,匯編生B(B語言),B生C(C語言),C生萬物(java、Python、C++等等)。
那么匯編的優(yōu)勢是什么?這里舉一個(gè)不是很恰當(dāng)?shù)睦樱簠R編是你的手,高級編程語言,比如java,Python。是洗衣機(jī)。開發(fā)一個(gè)軟件或者游戲就是洗一大堆衣服。用手洗衣服,要麻煩的多,但是洗的更干凈(這里僅僅是舉例,不要抬杠,意思是好好洗的時(shí)候確實(shí)手洗更干凈些),用洗衣機(jī)洗就快的多了,但是沒有手洗的干凈。當(dāng)你開發(fā)一個(gè)軟件的時(shí)候,工程量是很大的,也就是洗一大堆衣服的時(shí)候,你是選擇用洗衣機(jī)還是用手洗呢?
所以引出結(jié)論,普通的公司,大部分的項(xiàng)目,只需要用高級語言就行,普通的軟件都是這么做出來的,用例子來說也就是用洗衣機(jī)洗洗就好了,各大賓館就是這么干的。如果是很牛逼的公司,是高級語言和匯編結(jié)合著用,就是執(zhí)行效率很低的部分,用匯編來寫,提高程序的效率,比如QQ的主體部分是用高級語言編寫的,但是某些部分就用到了匯編,用于提高它的執(zhí)行效率。用例子來說就是某些非常高檔的賓館,他們的鋪蓋都是先用洗衣機(jī)洗完,有些部分不是很干凈,再用手洗一次。還有就是和硬件打交道的地方,開發(fā)驅(qū)動程序的時(shí)候,比如顯卡驅(qū)動網(wǎng)卡驅(qū)動,這里很大一部分需要用到匯編,舉例子就是某些非常高檔的衣服,必須手洗。到這里詳細(xì)大家都明白這個(gè)匯編的用處了。
咱們在第一段說了這些語言的先后順序,同時(shí)也是他們的執(zhí)行效率排名,由前到后,執(zhí)行效率依次遞減。機(jī)器語言就是你親自干活,匯編就是你親自指揮幾個(gè)人干活,C就是你指揮中層,中層再指揮底層干活的人干活,以此類比,越高級的語言執(zhí)行效率越低,但是你需要做的事情也是越來越少。
對于某些大公司來說,匯編是有需求的,對于小公司來說,沒必要。至于學(xué)習(xí),有時(shí)間的話肯定多學(xué)點(diǎn)好,當(dāng)別人都不會你會的時(shí)候,你就是無可取代的,當(dāng)你做到了無可取代,你就有了談條件的資本,或者同樣的一個(gè)軟件,你通過匯編優(yōu)化了一下,執(zhí)行效率提高了,那用戶體驗(yàn)肯定也就提高了,這個(gè)也是優(yōu)勢啊。
反匯編(破解軟件)也是需要你懂匯編的,逆向工程在我看來很復(fù)雜,就是因?yàn)槲也辉趺磿R編。大公司需要反匯編的人才,據(jù)稱,華為就是通過反編譯思科的源程序做出來的路由交換的系統(tǒng),當(dāng)然也有說是從黑客手里購買的思科的源代碼(這里不作討論)。
不過話說回來,匯編太難了,確實(shí)太難學(xué)了,計(jì)算機(jī)專業(yè)的學(xué)生應(yīng)該都知道,微機(jī)原理這課程包含匯編的一點(diǎn)非常基礎(chǔ)的知識,并且實(shí)現(xiàn)的功能都非常的簡單,這個(gè)基礎(chǔ)的知識就夠一些人頭疼的了。何況深入研究。如果有精力有時(shí)間,可以學(xué),學(xué)好了是大神,學(xué)不好也不吃虧。