回覆列表
-
1 # 張之一
-
2 # 火山口
彙編對於軟體程式碼長度的影響相對比較有限。主要是能減少一些亂七八糟跳轉和資料傳遞過程,具體計算功能的執行指令是不會少的。而且佔軟體大頭的資料,更是原封不動的保留。
但彙編對於軟體執行速度的影響,就極其明顯了。理論上可以消滅一切冗餘指令,讓軟體迴歸本真。
-
3 # 浪花見岸
C編譯器已經發展很長時間了,可能最佳化已經很成熟了,估計和手寫彙編差不多了吧。
也許這兩種情況需要手寫彙編:
1,需要極致最佳化,比如“駭客程式設計大賽”,幾KB的程式可以播放複雜的3D動畫。還有為CPU、記憶體、儲存很弱,或需要極致省電的裝置寫程式。
2,使用特殊指令集寫某種演算法,比如SSE、AVX。
2002年左右看過一本講C++的書,最後幾頁比較了幾種編譯器生成的彙編程式碼,MSC(微軟C)生成的彙編程式碼比另外一種編譯器高效很多,另一種編譯器有很多明顯的低效程式碼。現在(2021年)開源的GCC已經不比MSVC差了。
-
4 # 記錄你的傳奇
其實現在用匯編語言的地方不多了,學組合語言更多的是對計算機原理的理解,可能會用到一個硬體裝置(微控制器)的開發,還有就是作業系統的開發,其實能用匯編的地方几乎可以用C語言完成,現實現在很多一些效率要求高的應用就算是彙編也一樣不能解決,如大型網站等必須要分散式及負載均衡等。
-
5 # 諾斯替教主
以前駭客為了減少木馬過病毒的體積,有些核心的東西用匯編編寫,方便網路傳輸,那是因為以前的網速不像現在這麼快。彙編程式的好處就是體積小,編譯後基本沒有多餘的機器指令,基本上你怎麼寫的就是怎麼生成的,但以現在的硬體效能和網路質量,很少有用純彙編寫東西了,除非硬體驅動開發可能會用一點
不明白什麼是“軟體所佔空間”。和所有其他“高階”程式語言相比,組合語言生成的執行程式碼佔空間最小,原因是高階語言設計的主要目標是方便程式設計,所以產生的執行程式碼不可避免地包含一些冗餘的成分。