學習組合語言有什麼好處?

時間 2021-05-07 14:51:37

1樓:藍芽彪

效能要求比較高的地方其實是可以用C替代的. 但有個地方C比較難解決基本靠彙編, 晶元補丁....

參考RAM的補丁機制,

最近跟彙編幹上了... 果斷拿出大一學習的彙編基礎操刀上..

2樓:

最近在研究hotspot,然後發覺不懂作業系統根本不能理解很多知識點,然後研究作業系統,發覺要懂彙編,然後學習彙編,然後你就會覺得,那些爭啥語言好啥語言不好的人是多麼low。。。。

3樓:rhett

彙編可以讓你了解真正的真相!

學習體系結構,編譯原理,底層技術,二進位制安全,逆向工程,不懂彙編基本沒可能真正搞懂。當然如果不是搞這幾個方向,那確實很難理解有什麼好處,也沒必要學。

4樓:肺廢煙滅

偏硬體來說的話

低階(具有一定的彙編能力,能寫出基本程式,基本的8086和win32都能看得懂)

·可以修改遊戲資料

·可以破解收費軟體

·可以自己寫外掛程式(一刀999級不是夢)

·機子在跑高階語言的時候可以優化分配記憶體

中級(可以自己編寫出比較高階的程式,開始專精彙編分支的某一種比如51微控制器,ARM,X86,懂得硬體基本構造和計算機邏輯電路和CPU原理)

·可以自己編寫除錯底層系統

·可以彙編/反彙編,可以進行病毒的編寫和除錯和破譯

·移動端系統底層/電子產品/硬體基本系統熟練於心,可以高階成乙個真正的電子極客了。

·黑客方面可以達到入侵心臟起搏器,學校的電子屏,ATM螢幕,以及各種微電子系統,介於中級和高階之間。

·最讓人頭疼的核心問題可以一眼看出來問題所在並解決

·一般的彙編程式設計師大多數在這個水平

高階(這一層的人就是大牛或是大牛中的大牛了,對自己所熟練的語言達到了駕輕熟就的地步,在電腦以及不同的,CPU運作方式方面達到了專家的級別)

·可以參與破解刷機各種手機系統,將手機系統玩弄於鼓掌之上的人

·參與最新智慧型系統的編寫(智慧型遙感,火箭以及飛機的作業系統),優秀的彙編高階工程師

·國家網路安全域性級別的大牛,類似震網病毒的破譯與安全測試

·自己寫出來系統在同行屬於出類拔萃。

·在組合語言方面是不可多得的優秀的人才

神仙級別(世界上萬里挑一,如果出來了會是乙個國家的驕傲)

·獨自破解iphone,索尼,獨自研究編寫無人駕駛汽車系統的喬治霍期

·研究ATM機的CPU紋路走向和CPU對資料的處理方式的某黑客,,能達到破解ATM機系統對其遠端操控到自動吐鈔的地步(後來這個黑客被人暗殺了)

·編寫出一代ios系統的老喬

·參與編寫震網病毒的各路神仙。。。一次效能利用WINDOWS系統的20來個0day漏洞,程式的精巧度令人髮指,幾行命令抵一般人幾頁命令

5樓:GG分享8

我有一款軟體不知道怎麼破解找了幾天找著找著就來到這裡了,問一下有誰和我一樣的給個贊啊,另外建議沒有經濟基礎或者年齡優勢的不用學習彙編,想快速開發個東西出來的推薦學習C# Python

6樓:「已登出」

學會彙編,會讓你明白C語言在底層是怎麼運作的。

學會彙編,會讓你在ffmpeg達不到解碼速度時,用NEON把大牛的C函式重寫一遍,或許管用。

學會彙編,在Linux核心panic時,能看懂它panic什麼。

7樓:王毛毛

彙編要與硬體結合來學習, 再對照C語言生成的asm檔案,

在PC上是體會不到這麼做的妙處的, 在簡單的8051平台仔細品嚐, 然後再學習PC的彙編, 然後你就會感覺一切都明朗了, 呵呵

8樓:cmpeax

之前找了一本王爽的彙編看了然後又看了windows下的彙編和pe檔案結構那本大黃書對windows的了解又稍微加深了一點因為之前腦袋發熱想編寫乙個os(天荒夜譚哈哈)

9樓:

接觸彙編與模電之前

年少的我總覺得計算機技術或者嵌入式技術是一門吃飯的本領,餬口的手藝學了之後

對前輩們萬分敬仰,有了一種「多虧了祖師爺保佑,賞口飯吃」,枯燥的指令與暴力的電平邏輯變成可讀性極強的高階語言,這簡直是堪比「漢字簡化」的豐功偉績

說到學習彙編的好處,覺得計算機不再是工具,而是可以溝通的夥伴,我們可以互相理解對方所思所想吧。

10樓:李時

組合語言更解決計算機的底層,彙編源程式執行效率高。一些高階語言都是先轉成彙編然後再轉成機器語言的。了解彙編可以幫組更好的了解高階語言,設計演算法啥的。

如果你要是搞硬體的,啥也不說了彙編對你的好處就更大了,現在硬體嵌入式做的好的都用彙編吧

11樓:Moeyinss106

學習匯報語言的目的不是像學習高階語言那樣。彙編是底層語言,學習它本身就有利於我們進一步了解底層計算機的執行。這對計算機的學習是個很基礎的要求。

隨著現在越來越多高階語言的發展,不可否認為我們編寫提供了便利。但是彙編給我們帶來的卻是理解計算機。我覺得這很重要,學了彙編你才算知道了計算機

12樓:

電子專業強答.

課上在講x86彙編,我又看了硬體/軟體介面那本書,以mips為物件展開敘述的.

從前只寫過8051微控制器(羞),學習彙編和計算機原理這些課程,有利於我理解pc的處理器是如何執行的,明白世界執行的機理,是一件讓人十分開心的事情.

此外,搞懂這些知識,有利於從事嵌入式開發.當使用c/c++寫程式,發現某些無厘頭問題時,可以借助查彙編發現問題所在.

13樓:Andy Denker

不是專業人士,只是隨便編幾個程式玩玩的人。所以,不知道彙編有多大的用處。

不過,彙編學起來很舒服,這也算是一種好處吧:

1,彙編的每一條指令幹什麼,相當簡單清楚。不像C++,需要借助若干抽象概念才能理解,而且未定義的操作太多。

2,彙編感覺自己在直接操作計算機的每乙個記憶體單元,每乙個暫存器,有一種掌控一切成就感。學C++嘛,感覺是被一堆人為定義的什麼03,11,14的束縛著,也被編譯器束縛著。

(當然,只是一種感覺,其實,都是被認為定義和編譯器束縛的)

如果再給我一次機會,我只學彙編,不學C++啦。學C++太痛苦,學彙編太輕鬆。

14樓:強成

基礎很重要,在學習彙編的過程中,會了解很多程式執行原理,程式的記憶體結構,高階語言的各種特性的實現機制,這對於程式設計師來說,是相當相當相當重要的。。。。所有的高階語言寫的程式最終都將轉換成CPU指令集。

所以彙編重要啊,對於理解高階語言中的各種語法和結構的背後機制是必需的知識。

15樓:Hugh

前天在是美國時間凌晨2點,被彙編虐的死去活來,前天我是5點睡,7點起來上了一天課,倆室友直接沒睡,昨天補了4小時覺,作業還是沒能按時交上去,(x86-64根本沒有中文資料了,只能就著英文硬上)特地找這個問題來吐槽。

作用就是,,,意識到自己圖樣拿衣服。。。不說了,接著看

16樓:

彙編是用來理解計算機內部工作方式的,不是用來程式設計序的。

(當然,他可以精確控制各步執行步驟,可以精確控制行為。見過老師優化程式使用過。

17樓:Andy Young

學習彙編,讓我看得懂《自己動手寫作業系統》,對OS的實現不再感到那麼神秘,明白了C語言中函式引數和返回值是如何處理的,主要是明白一些底層的東西。

18樓:阿喵達

電信的一男生被女生約出去玩,大家以為兩人能成,非常遺憾男生表示兩人沒有共同語言,那麼設想一下,妹子要是學會組合語言兩人會沒有共同語言嗎?

19樓:

只是小小實習生,談談自己的看法。

彙編更接近機器語言,能更好的理解機器的運作,據我所知嵌入式行業會運用比較多。應該和底層經常打交道的行業會常常接觸彙編。

其他行業接觸彙編不多,但是了解彙編個人認為相對於不懂彙編的人會更具優勢。彙編更好的幫我理解了程式的運作,有時候我會將寫好的程式轉換成彙編以理解內部的運作,這樣會發現一些單步除錯都無法發現的問題。

個人感覺更多的是方便理解你的程式吧,當然嵌入式等底層行業彙編就是基礎了。

20樓:BHEscaper

在某些情況下,你除了彙編沒有別的選擇——

CPU,時鐘,以及記憶體尚未初始化的時候……當你需要切換CPU的工作模式的時候……

當你需要直接操作協處理器的時候……

好吧,對於許多人以上情況可能永遠也不會遇到——實際上我也只在學習階段遇到過……

21樓:

彙編是一種一通百通的東西

可能你工作中用像你說的高階語言,永遠用不到彙編但是彙編能讓你知其然知其所以然

就跟你學音標一樣,不會音標也不妨礙你說英語,但是可能沒那麼標準,也不知道為什麼會這麼發音,偶爾一天碰上陌生的單詞就跪了。

22樓:zEqueue l

軟體的逆向工程,計算機病毒,免殺,加密,脫殼,外掛程式。Rootkit,軟體除錯,統統都跟彙編掛鉤,即使不會寫,也需要能讀懂。

23樓:

學彙編不是說一定要用這玩藝做多牛鼻的事情, 問題的關鍵在於, 學透了彙編會使你真正理解計算機

另外一方面, 如上面所說, 在工作中你遲早會在某個陰暗的角落遇到彙編. 不管你承認不承認, 現在的CPU沒有直接跑高階語言的, 哪怕是虛擬機器也都是類似彙編的指令集.

當遇到崩潰分析, 效能優化甚至編譯器抽風等等的時候, 彙編是你最後一根救命稻草.

24樓:劉東來

個人覺得的幾點用途:1.你如果要搞軟體逆向工程方面的學習,要了解一些簡單的彙編知識 2.

你如果要了解作業系統底層工作時就要了解深一點的彙編知識,如《自己動手寫作業系統》一書,其實只要你對於保護模式熟悉,這本書很多章節都可以不看。

如此之外,個人覺得用處不大

25樓:張浩

舉個最簡單的例子,用微控制器的一組埠接R2R網路實現dds:

用彙編的話大概是這樣,只需要10個時鐘週期就能輸出乙個值,16M主頻可以輸出0.8M以下的波形;

還可以更快,如果有足夠的ram,把波形資料存在ram而不是flash裡,lpm這裡改用ld,可以省乙個週期;如果不需要退出迴圈,把sbic這句也去掉,又能省乙個週期。最多可以只用7個時鐘週期輸出乙個值,見http://

如果用C語言,一般得十幾個時鐘週期才能輸出乙個值。

loop:

add r28, r221 clock

adc r29, r231 clock

adc r30, r241 clock

lpm3 clocks

out _SFR_IO_ADDR(PORTD), r0 ; 1 clock

sbic _SFR_IO_ADDR(PINB), 0 ; 1 clock

rjmp loop2 clocksret

組合語言跳轉問題?

韋易笑 怎麼還在學 16 位彙編呀?什麼年代了?程序還要自己操作段位址。你理解錯了 call word ptrds 0eh 發生的是 push ip jmp word ptr ds 0eh 同時push ip展開是 decsp,2 movword ptrss sp ip 所以完整展開 call wo...

大一新生如何學習組合語言?

JeepCar 是哪個學校?大一讓你們學彙編?如果是學校安排你們學,這安排有問題。如果是選修課,那還是不要選。如果是計算機專業,可以先學C語言,然後與 計算機組成 一起學組合語言。如果不是計算機專業,基本上不用學彙編。真的很想學彙編,那建議還是學X86彙編,裝個XP系統,或者裝個dosbox,執行d...

除了組合語言,其他語言是否都會先轉為 C 語言?

Interlock C語言並不是基礎,在C語言出現之前就有很多很多程式語言了。C語言也是為了方便程式設計師使用才被製作出來的。C語言衍生出了很多類C語言。當然還有更多的語言和C語言毫無瓜葛。當乙個編譯器設計者想要實現一門語言的時候,至少有兩個方案可以選,乙個是將該語言直接轉換成機器碼,另乙個是將該語...