在大學的時候,彙編就是學的很爛.一是對彙編這門語言沒概念,二是那些指令集很難記清楚,用的機會也少,自然學的不好.但是現在覺得相當有必要重頭學習一下彙編.部分原因我在上一篇寫完設備模型的總結時提到了而.最近在看一本書《ARM:Assembly Language Programming》,作者是Peter Knaggs & Stephen Welsh.作者在開頭也提出學習彙編的必要性和重要性,借他們的話重新說一下:
他們首先用三個問句來引出爲什麼要學習彙編:
外科醫生爲了知道手術刀的用法而需要學習冶金嗎?飛行員需要學習熱力學理論來理解飛機引擎是如何工作的?報社的記者要學習電子學來理解照相機如何工作的?答案當然是“NO”,那麼爲什麼要讓學生學習彙編語言和計算機結構呢?
第一就是教育和培訓不是一碼事,大學就應該學大學裏該教的內容,當然學生也得好好學.
第二是彙編語言是計算機體系結構和計算機軟件的基礎
第三:彙編可以幫助我們更好的理解數據類型,指針,堆棧、函數調用、遞歸調用以及參數傳遞,彙編可以更直接的訪問IO和設備,幫助理解設備驅動等等.
總之彙編會告訴我們計算機系統內部正在發生什麼
而按照目前我個人的體會是:
學習彙編可以讓我更好的寫C,學習彙編可以讓我更好的理解loader,學習彙編可以讓我更好的理解進程和內存管理,虛擬存儲器和存儲器映射等知識.總之,好處多多.目前彙編成了我的一個瓶頸,那搞定它可以讓我上一個臺階.
接下來學習彙編的環境爲:操作系統爲ubuntu,編譯器是arm-linux-gcc,平臺是s3c2440(ARM920).
ARM彙編的指令集就那些,但是windows下的arm彙編和linux的arm彙編有細微區別.windows下是用ADS codewarrir等環境來開發,編譯器是armasm,而linux用的是gnu arm,更個接近於AT&T風格.偏向於linux下的環境,所以就選擇了GNU ARM彙編.
學習GNU ARM彙編的計劃和目標:
ARM體系結構
ARM下的指令集
GNU彙編的風格
在s3c2440平臺上的驗證
當然最終的目的還是爲了學習loader和linux.
開始吧,新的學習目標~~~
GNU ARM彙編--(一)開篇
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
GNU ARM彙編--(三)ARM處理器的基本原則
這一篇的知識來源全部來自《ARM System Developer's Guide》 從編程人員的視角來看,arm核是由數據總線連接的功能單元組成,如下圖所示: 數據通過數據總線流向處理器
xie0812
2020-06-19 17:03:17
GNU ARM彙編--(四)中斷彙編之非嵌套中斷處理
dndxhej
2020-02-24 08:17:56
GNU ARM彙編--(十)s3c2440的RTC
dndxhej
2020-02-24 08:17:46
GNU ARM彙編--(九)s3c2440的PWM
dndxhej
2020-02-24 08:17:46
GNU ARM彙編--(十六)bootloader與kernel之間的commandline的傳遞
dndxhej
2020-02-24 08:17:45
GNU ARM彙編--(十五)linux下的printascii
dndxhej
2020-02-24 08:17:45
GNU ARM彙編--(十二)arm彙編指令的B真的那麼簡單嗎?
dndxhej
2020-02-24 08:17:45
GNU ARM彙編--(十三)GNU ARM彙編下的linker script
dndxhej
2020-02-24 08:17:45
GNU ARM彙編--(十四)GNU ARM彙編下做任務調度
dndxhej
2020-02-24 08:17:45
GNU ARM彙編--(十一)小結一下
dndxhej
2020-02-24 08:17:45
arm程序的反彙編程序 試讀
xie0812
2020-02-22 21:52:21
GNU ARM彙編--(二)彙編編譯鏈接與運行
xie0812
2020-02-22 21:52:20
GNU ARM彙編--(三)ARM處理器的基本原則
這一篇的知識來源全部來自《ARM System Developer's Guide》 從編程人員的視角來看,arm核是由數據總線連接的功能單元組成,如下圖所示: 數據通過數據總線流向處理器
xie0812
2020-06-19 17:03:17
GNU ARM彙編--(四)中斷彙編之非嵌套中斷處理
dndxhej
2020-02-24 08:17:56
GNU ARM彙編--(十)s3c2440的RTC
dndxhej
2020-02-24 08:17:46