彙編語言入門知識

離機器語言只有一步之遙的一種計算機編程語言,每一條彙編語句都要被彙編器翻譯成一條對應的機器語言指令,彙編程序員必須熟悉計算機的硬件架構,缺少書面註釋的彙編語言程序將很難維護.彙編語言跟硬件密切相關,每款處理器硬件都會對應有一種與衆不同的彙編語言.過去,很多的控制和應用程序都是利用彙編語言來編寫的,這樣可以提升程序運行的效率.尤其是操作系統和數據庫管理程序等軟件的執行效率.如今廣泛流行的C和C++語言,由於也可以在機器級操作位,效率也是很高的,針對不同的硬件,C和C++都有相應的編譯器,程序員編寫的C或C++程序代碼可以被編譯成機器指令在各種硬件上運行.
爲完成同一個任務而編寫的彙編代碼在不同的硬件上代碼的樣子和行數是有很大差別的,例如把Fahrenheit轉變成Clesius這樣簡單一個動作,如果在HP 3000的小型機上要編寫16行的彙編代碼可以完成,而如果是在Intel x86微處理器硬件上則需要編寫86行的彙編代碼纔可以完成.現在彙編語言的應用範圍已經變窄了,主要用在設備驅動程序,接近硬件的嵌入式系統以及實時運行的應用程序方面.一個現代的彙編器的主要任務是將彙編程序代碼中的彙編操作指令翻譯成可立即執行的機器操作碼,並且將程序代碼中的符號名字解析成物理內存裏的某位置和其他單元.引用符號名稱是彙編器中的一項關鍵特徵,修改彙編程序時它可以幫助省去繁瑣量多的手工更新內存地址的麻煩.
多數彙編器還具備了宏處理能力,宏可以用來執行文本替換,可以免去書寫小型子程序塊的麻煩.彙編器也是一種程序,但編寫它的複雜程度遠不及高層次語言(例如C語言)的編譯器,彙編器在1950年代就出現了(最早的彙編器對疲憊勞累的那一代程序編寫人員來說簡直就是一個突破).爲更有效地開採CPU處理器的管道效率,現代彙編器特別針對精簡指令集計算機(RISC),比如MIPS,Sun SPARC,HP PA-RISC等處理器做了優化指令的計劃.更聰明一些的彙編器還提供了,諸如,高級控制結構,高級別的過程函數功能描述,包含結構,記錄,聯合,類,集合等數據類型的抽象,更狡猾的宏處理等等語言抽象功能.注意通常情況下彙編器assembler指的是彙編語言本身,而非僅指彙編器這種工具,指代對象上容易混淆.
一個用彙編語言寫的程序包含一系列的指令符號,這些指令被彙編器翻譯成對應的機器指令,直接加載到內存中被執行.例如在x86/IA-32處理器上的一條二進制碼的機器指令10110000 01100001如果用彙編語言來描述就是mov al,061h這樣就好記多了.這條二進制機器指令用16進製表示就是0xb061.彙編描述的意思是將16進制值是61也就是十進制的97這個數值搬運到硬件處理器的一個名叫al的寄存器格子中去.任何一種計算機架構都對應有自己的機器語言.計算機根據它們所能支持操作的類型和數量而相互區分.它們有不同大小和數量的寄存器,以及在存儲設備中異樣表達的數據類型.大多數通用目的的計算機可以提供最基本的一些類似功能.實現方法的不同則由相應的彙編語言程序外觀的不同體現出來.單套指令集中可能存在多種彙編語法和符號,廠商通常對最流行的那種彙編語法和符號提供文檔說明和支持.[未完待續...]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章