《匯編語言》_計算機運行的奧秘

相比于高級語言的層層抽象匯編語言更接近于機器運行的本質

導讀:


這是一本非常不錯的匯編入門的書籍,對于學習編程的同學永遠繞不開的一個問題就是程序是怎么運行的,而學習匯編會幫助你更好的去理解程序的運行,從而在面對高級語言時,能夠打下一個比較不錯的基礎;如果你近期有打算閱讀這本書的話,建議先去讀《編碼:隱藏在計算機軟硬件背后的語言》這本書。關于我讀這本書的原因是在看CSAPP時發現很多匯編指令都不明白是什么意思,為此便特意去讀了一遍這本書,發現還是蠻有收獲的。


《匯編語言》

在這篇文章中不是為了告訴大家這本書在講什么,而是希望能夠對匯編這個概念有一個更深的理解,可以更好的去讀這本書,為此讓我們帶著三個問題出發。

匯編語言是什么?


關于匯編語言書中是這樣描述的:匯編指令和機器指令的差別在于指令的表示方法上,匯編指令是機器指令便于記憶的書寫格式。

通過這句話可以了解到 匯編語言其實就是一組助記符,幫助我們去更好的閱讀與書寫程序。

維基百科中是這樣描述的:匯編語言是一種用于電子計算機微處理器微控制器,或其他可編程器件的低級語言。在不同的設備中,匯編語言對應著不同的機器語言指令集。一種匯編語言專用于某種計算機系統結構,而不像許多高級語言,可以在不同系統平臺之間移植。

從這句話可以看出匯編語言是根據不同的處理器具有一定的差異性,也就是說在A機器下寫的程序,放在B機器下未必可以直接運行。

匯編語言可以做什么?


相比與高級語言的層層抽象匯編語言是最接近機器語言的編程語言,也就意味著匯編語言對硬件有很強的操縱能力,主要用于嵌入式開發。

了解匯編語言對我有什么好處?


知乎看到一個很不錯的答案 直接進行引用:

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

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

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

結語:


關于學習匯編的意義不在于非要用它去寫程序,而是在寫程序的時候可以知道那種寫法會更好些,但凡對程序設計有所追求的話,匯編都是必修技能或基礎;你能取得的高度,源自于你的基礎。

提供一些學習資料:

小甲魚的博客 里面提供有視頻

還有就是本書

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容