首頁>Club>
71
回覆列表
  • 1 # 大學生程式設計指南

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

    學習組合語言的幾個好處:

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

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

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

  • 2 # 嵌入式宏思微想

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

    組合語言依賴於裝置,和機器語言一一對應,具有平臺化不可移植特性。正因如此,可具有程式碼直接性、高效性。

    今時今日,組合語言主要用於底層,硬體操作,高要求的程式最佳化。在嵌入式領域,少數微控制器(如微控制器)還可能使用匯編全程式設計,大多數都是用來做程式最佳化,尤其是演算法最佳化。

    在嵌入式領域,組合語言是高階程式設計師應當掌握的語言之一。

  • 3 # 夜狼零零發

    看你做什麼工作了,如果只是坐著基礎的開發網站,軟體這些就沒有必要學了,如果你想將來有自己的志向,想從事底層研究開發,比如微控制器,機器製造,機器人等,軟硬體都得懂,彙編是必須要學的,所以看你的選擇了,如果當個興趣來學的話也是可以的,說不定以後能用的上,人嘛,活到老學到老

  • 4 # HeloneTech

    組合語言實際上是機器語言的助記符,對於不同的CPU,有些不同的指令集,他們的彙編程式碼與格式也是不同的。因此使用匯編語言程式設計,不僅僅要會業務邏輯,還要懂得不同架構下的組合語言。

    現階段組合語言多用在微控制器程式設計、以及系統程式中,主要負責CPU啟動時刻,以及多程序上下文切換時。這是因為,這些功能用高階語言很難實現或者執行效率太低(比如C語言)。組合語言可以直接操作CPU暫存器,比如PC、SP等暫存器,提高效率。

    在大學計算機相關專業裡都會學習一門叫做《微機原理與介面》的課程,這門課主要講CPU(一般是8086)的構成,暫存器的功能等,之後就是講指令集與組合語言,使用匯編語言程式設計。透過這門課的學習,學生可以認識到計算機的基本工作原理和實現,透過組合語言程式設計可以瞭解到CPU的基本執行過程。這對於從事IT網際網路類的工作來說是很有幫助的,知其然還要知其所以然。這就是科班出身的與培訓班出來的程式設計師的不同之處。總而言之組合語言可以幫助你理解整個計算機的工作原理。

    至於題主說組合語言有沒有用處,那就要看你是做什麼的方面工作的,如果是微控制器開發、嵌入式底層開發的,肯定是要用到的,但一般組合語言的篇幅佔比不會太大,所以學習起來也不會太難。如果是做伺服器前後端開發、客戶端開發等基於系統的上層軟體基本用不到彙編。

    如果感興趣題主可以學習下x86的彙編,快的話一個星期就可以入門了。對以後得職業發展是有一定幫助的。

  • 5 # 一個存在感小透明

    作為985院校的本碩畢業生,現在就職於BAT,我個人的意見是除非本科必修課以及相關從業者,否則沒必要學習了。

    本科必修課

    與java,Python等等語言相比,組合語言其實是低階語言,除了可讀性比較低,學習與除錯難度也要比java等高階語言大。目前組合語言通常被應用在底層,硬體操作和高要求的程式最佳化的場合。此外,驅動程式、嵌入式作業系統和實時執行程式的時候,也會用到組合語言。

    我讀大學的時候,這門課是大三才上的,而且還有課程實踐,整整一週,對著一臺機器要試著敲各種枯燥的程式碼,感覺整個人都不好了。好在當時老師也明說了,組合語言是硬體基礎,將來不想搞硬體的話,不用再接觸這個小祖宗了。正是因為這段經歷,讓我更加明確了未來不要從事硬體的決心。

    實際工作

    我個人從實習開始就是做網際網路平臺開發的,從一開始用的就是php,javascript,java這種高階語言。而據我對周圍同事的觀察,我們也沒有人用過組合語言。最多自己買個樹莓派回家琢磨琢磨,也沒用到彙編這麼底層的語言工具了。

    因此,從我的角度來說,彙編作為一門底層語言,如果你未來不想從事硬體工作,實在是沒有必要耗在它身上,彙編不像C/C++,既是高階語言也能做硬體開發,所以有這個時間不如去學學C++,說不定對未來幫助還能更大些。

  • 6 # 程式猿的未來人生

    是否有必要學習組合語言與工作行業息息相關。如果是作業系統工程師、嵌入式軟體工程師、驅動開發工程師、安全專家、逆向工程師和駭客等還是有必要學習組合語言的,對於像安全專家、逆向工程師和駭客等可能不要求會寫彙編程式碼,但是要求會看的懂彙編程式碼,能理解程式碼。如果是Java,Python等高階語言的上層應用開發者則沒必要刻意去學習組合語言程式設計。

    組合語言的編寫與體系結構和編譯器密切相關。

    1.體系結構:不同的體系結構具有不同的暫存器、彙編指令,需要掌握體系結構ABI規範以及暫存器用法,指令的功能。如RISC-V體系結構的暫存器的ABI規範如下:

    2、編譯器:不同的編譯器提供不同的偽指令、偽操作以及語法格式。以x86架構為例處理器所使用的彙編指令Intel 彙編和AT&T彙編兩種格式。Intel 彙編一般Windows 派系 (VC 編譯器)使用,而AT&T彙編Unix派系(GCC編譯器)使用。實際上平常用的彙編指令不多,主要記憶體操作指令、立即數操作指令、跳轉指令和暫存器操作指令等,如RISC-V體系結構掌握下圖的偽指令基本就能滿足使用需求了。

  • 中秋節和大豐收的關聯?
  • 摩托車上牌照需要哪些手續和費用?