相比于高級(jí)語(yǔ)言的層層抽象匯編語(yǔ)言更接近于機(jī)器運(yùn)行的本質(zhì)
導(dǎo)讀:
這是一本非常不錯(cuò)的匯編入門的書籍搂鲫,對(duì)于學(xué)習(xí)編程的同學(xué)永遠(yuǎn)繞不開的一個(gè)問(wèn)題就是程序是怎么運(yùn)行的,而學(xué)習(xí)匯編會(huì)幫助你更好的去理解程序的運(yùn)行磺平,從而在面對(duì)高級(jí)語(yǔ)言時(shí)魂仍,能夠打下一個(gè)比較不錯(cuò)的基礎(chǔ);如果你近期有打算閱讀這本書的話拣挪,建議先去讀《編碼:隱藏在計(jì)算機(jī)軟硬件背后的語(yǔ)言》這本書擦酌。關(guān)于我讀這本書的原因是在看CSAPP時(shí)發(fā)現(xiàn)很多匯編指令都不明白是什么意思,為此便特意去讀了一遍這本書媒吗,發(fā)現(xiàn)還是蠻有收獲的仑氛。
在這篇文章中不是為了告訴大家這本書在講什么,而是希望能夠?qū)R編這個(gè)概念有一個(gè)更深的理解闸英,可以更好的去讀這本書锯岖,為此讓我們帶著三個(gè)問(wèn)題出發(fā)。
匯編語(yǔ)言是什么甫何?
關(guān)于匯編語(yǔ)言書中是這樣描述的:匯編指令和機(jī)器指令的差別在于指令的表示方法上出吹,匯編指令是機(jī)器指令便于記憶的書寫格式。
通過(guò)這句話可以了解到 匯編語(yǔ)言其實(shí)就是一組助記符辙喂,幫助我們?nèi)ジ玫拈喿x與書寫程序捶牢。
維基百科中是這樣描述的:匯編語(yǔ)言是一種用于電子計(jì)算機(jī)、微處理器巍耗、微控制器秋麸,或其他可編程器件的低級(jí)語(yǔ)言。在不同的設(shè)備中炬太,匯編語(yǔ)言對(duì)應(yīng)著不同的機(jī)器語(yǔ)言指令集灸蟆。一種匯編語(yǔ)言專用于某種計(jì)算機(jī)系統(tǒng)結(jié)構(gòu),而不像許多高級(jí)語(yǔ)言亲族,可以在不同系統(tǒng)平臺(tái)之間移植炒考。
從這句話可以看出匯編語(yǔ)言是根據(jù)不同的處理器具有一定的差異性,也就是說(shuō)在A機(jī)器下寫的程序霎迫,放在B機(jī)器下未必可以直接運(yùn)行斋枢。
匯編語(yǔ)言可以做什么?
相比與高級(jí)語(yǔ)言的層層抽象匯編語(yǔ)言是最接近機(jī)器語(yǔ)言的編程語(yǔ)言知给,也就意味著匯編語(yǔ)言對(duì)硬件有很強(qiáng)的操縱能力瓤帚,主要用于嵌入式開發(fā)。
了解匯編語(yǔ)言對(duì)我有什么好處?
在知乎看到一個(gè)很不錯(cuò)的答案 直接進(jìn)行引用:
學(xué)匯編不是說(shuō)一定要用這玩藝做多牛鼻的事情, 問(wèn)題的關(guān)鍵在于, 學(xué)透了匯編會(huì)使你真正理解計(jì)算機(jī)
另外一方面, 如上面所說(shuō), 在工作中你遲早會(huì)在某個(gè)陰暗的角落遇到匯編. 不管你承認(rèn)不承認(rèn), 現(xiàn)在的CPU沒(méi)有直接跑高級(jí)語(yǔ)言的, 哪怕是虛擬機(jī)也都是類似匯編的指令集.
當(dāng)遇到崩潰分析, 性能優(yōu)化甚至編譯器抽風(fēng)等等的時(shí)候, 匯編是你最后一根救命稻草.
結(jié)語(yǔ):
關(guān)于學(xué)習(xí)匯編的意義不在于非要用它去寫程序缘滥,而是在寫程序的時(shí)候可以知道那種寫法會(huì)更好些轰胁,但凡對(duì)程序設(shè)計(jì)有所追求的話,匯編都是必修技能或基礎(chǔ)朝扼;你能取得的高度赃阀,源自于你的基礎(chǔ)。
提供一些學(xué)習(xí)資料:
小甲魚的博客 里面提供有視頻
還有就是本書