GNU ARM彙編--(一)開篇

在大學的時候,彙編就是學的很爛.一是對彙編這門語言沒概念,二是那些指令集很難記清楚,用的機會也少,自然學的不好.但是現在覺得相當有必要重頭學習一下彙編.部分原因我在上一篇寫完設備模型的總結時提到了而.最近在看一本書《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.
        開始吧,新的學習目標~~~
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章