我的目標主要集中在軟件應用程序開發,也許是Web應用程序開發,但最有可能的是桌面應用程序。我正在走上一條更加熟悉C/C++的道路,但是我應該遠遠低於C/C++,進入彙編階段?或者我對我的長期目標沒有好處?學習裝配方言是否值得?
回答
除非你有直接的應用程序,否則它可能不會有很多好處。如果你需要一般的知識,C/C++是一個很好的開始。
也就是說,大會構成的挑戰非常有趣,它需要一個完全不同的思維方式來完成任務。
我花了一點時間學習Z80大會編程TI-86計算器。 Z80指令集非常小,在程序集中編程計算器的新穎性非常有趣。
ticalc.org在TI assembly programming上有很多很好的資源。
我不會開始學習ASM。如果你想學習C/C++,那就從那開始吧。隨着代碼質量的成熟,您可能會發現您需要ASM。 99%的時間你不會,但時不時你可能需要它。
此外,它在瞭解C/C++在幕後做什麼方面知道ASM是有幫助的。但是,再次,直到你更先進,你可能不需要它。
我做到了,我認爲這對我有幫助。它不再幫我一天一天,但我認爲這取決於你的工作。
20年前,我在Commodore學習彙編,並在IBM大型機上學習了大學。我不能說這對我目前的工作有幫助。
我同意馬克。我認爲這與使用C#,VB.NET或其他.NET語言編寫代碼時學習MSIL類似。它有助於瞭解引擎蓋下發生了什麼,但是您可以在整個生命週期內創建適用並且從不需要的應用程序。
不,除非你想要好玩,否則你真的不需要學習裝配。
有一些事情你需要知道的程序集,如驅動程序的創建,操作系統開發,利用開發,但除此之外,我個人認爲你可以非常高興地編碼永遠不知道它。
如果你確實需要學習彙編,你就會知道它 - 我不會了解它,學習它的目的..
如果你正在編寫託管C++,它是無價偶爾要知道最基本的x86程序集,二進制數字系統等。我主要進行C/C++開發,而且偶爾需要調試生產代碼中的錯誤,這些錯誤對於編譯器生成的機器代碼表示非常特定,只有這樣才能找到,然後修復這個錯誤就是讀取反編譯後的程序集,並確定編譯器爲什麼會這樣生成它。
有關裝配的更多信息,請參閱問題:What is the best way to learn Assembly? Specifically, for someone who has experience in dynamic languages。
G'day,
我學習了PDP彙編器時,我做了我的選舉。工程。 70年代後期。我真正使用的彙編程序的最後一種方言有四種不同的內存尋址模式。我嘟at的最後一種方言有17種模式!
不確定現在什麼樣的學習彙編程序真的給你帶來了什麼。那時候它是我選擇的CS流的重要組成部分。工程。度。
至於學習C++我剛剛坐下來,通過工作「Accelerated C++"這本身就是接近C++而不是‘與其他位’C。
至於C,我只是工作,通過最新版本"C Programming Lanuage"(AKA)K'n'R
希望這有助於的
歡呼聲, 羅布
現在,如果你問起納米progrmming ...( - :
「是否值得去學習一個組裝方言?」
我有專業的程序集。運行傳真機和掃描儀的M68k。另外,Windows VxDs(虛擬設備驅動程序)在擁有真實內核之前的3/3.1天內回到Windows。
當你編寫程序集來完成普通的軟件-y類任務(複製內存,連接字符串,調用中斷處理程序等)時,這很有趣。有時候你可以用C代碼來調用匯編,以便在給定的處理器上儘可能快地執行一些特定的任務。這可能會更有趣,因爲您正在尋找利用處理器給予您的每個週期的方法。您關心處理器L1緩存中的內容。你關心對齊內存中的數據以避免緩存線命中(如果我記得這個術語)。您關心的是雙流水線處理器架構,並以正確的順序使用正確的2或3或4條指令,以便在單個時鐘週期(處理器的XgHz中的那些HZ中的一個)內發生2或3或4種情況。
當您編譯程序集來驅動自定義硬件時,現在您正在執行諸如填充16byte內存緩衝區,設置DMA操作並將該數據發送到控制器,該控制器正在執行某些操作,如驅動激光打印機鼓。鼓正在轉動,並且不能停止,並希望在接下來的5us內接下來的16個字節。當然,這可以用C或C++來完成。但是這些例子是無止境的。
我也許會修剪你問題的最後一部分「學習裝配方言是否值得?」讓它「值得它學習嗎?」
如果你喜歡編程,你如何定義「價值」涉及編程愛的一些組成部分。從這個意義上說,我從來沒有學過編程方面的東西,並不認爲這是值得的。即使我沒有用過多的後綴。
從同樣的意義上說,我幾乎可以說學得越難,就越「值得」。
但是,所有那些蓬鬆的垃圾放在一邊,我相信它是值得的,至少得到一些組裝背景。繼續研究如何編寫程序集來替換一些簡單的stdlib例程(如strcpy,memmove等),然後嘗試優化它們,並在計時時調用它們一百萬次。
裝配不是很困難。一旦你熟悉C,花一兩天學習基本程序集。它在調試方面的幫助非常大,而且它的樂趣在於能夠編寫代碼,使速度方面的C等效速度提高10倍,15倍甚至更多。
我真的很驚訝看到這麼多「沒有」這個問題的答案。我想你應該學會大會。
我不指望你會永遠使用程序集直接作爲您的工作的一部分。但是這並不意味着你不應該學習它。
學習大會將教你關於計算機內部正在發生什麼。它將幫助您瞭解軟件實際在做什麼。
這實際上是關於專業。你會成爲一名專業的軟件工程師嗎?或者你會成爲一個複製粘貼黑客?當然,後者可能會支付賬單,但作爲一名專業人士則更加令人滿意。
聽到有人說,「不要打擾學習大會」,聽起來像我的耳朵,「這是建橋的食譜,你不需要學習物理或工程學建橋。遵循這些食譜。「不,謝謝。
- 1. 學習彙編語言是否值得?
- 2. 是否Telerik openaccess ORM值得學習?
- 3. 學習Python之前是否值得學習C/C++?
- 4. 學習序言
- 5. 是COBOL仍然值得我們學習
- 6. 學習序言練習2.3
- 7. 值得學習SharePoint 2007嗎?
- 8. Haxe值得學習嗎?
- 9. Tkinter值得學習嗎?
- 10. GroupLayout:它值得學習嗎?
- 11. 值得學習PDO嗎?
- 12. 您是否需要學習語言以學習SQL以外的Tableau?
- 13. 學習C++語言
- 14. 當我知道Symfony 3時,是否值得學習Angular 2?
- 15. 是否值得學習使用Emacs進行Web開發
- 16. 什麼是學習機器學習的最佳編程語言?
- 17. 我是否需要學習更多的編程語言?
- 18. Scikit學習安裝
- 19. 學習編程語言
- 20. 學習「序言藝術」
- 21. 學習Ontology網絡語言
- 22. 如果不先學習PHP,是否可以學習Zend框架?
- 23. 是否有必要學習用於學習android的XML?
- 24. Python是一種教學/學習語言而不是工作語言嗎?
- 25. 你學習語言的方式是什麼?
- 26. 程序員學習新語言的最佳方式是什麼?
- 27. 學習一種新的編程語言取決於現有的熟悉語言是否是一種壞習慣?
- 28. .NET gadgeteer值得學習的東西?
- 29. 2014年值得學習ColdFusion嗎?
- 30. 值得花時間學習Qt(C++)嗎?
您也可以製作自制軟件Nintendo Gameboy遊戲(Z80組件的子集)。 – James 2014-02-26 07:22:02