彙編編譯器

彙編語言編譯器的編寫,一般開發編譯器的話。有兩條路選擇:1.利用yacc(或者其變種)&lex(詞法分析)-等工具自己生成語法模板。詞法語法都可以使用這些工具自己生成,然後自己編寫生成的中間碼和生成的機器碼就可以了。一般做編譯原理類似試驗都是如此的。許多編譯器也的確是這樣。2.自己寫詞法分析和語法分析。可以參考一些開源的編譯器,lcc-這個是ANSI C99標準的編譯器是開源的,或者nasm,watcom等編譯器到www.sf.net上不少開源的編譯器。

簡介

彙編語言(assembly language,中國大陸譯作彙編語言,台灣譯作組合語言),是一種與硬體緊密相關的程式設計低階語言。彙編語言是機器語言便於記憶和理解的符號形式(又稱為助憶字)。
彙編語言的語句與機器語言 (機器語言操作碼) 存在對應關係,但這並不意味著組合語言語句與機器操作對應。在 CISC (複雜指令集) 結構CPU上,組合語言(或一個機器語言操作碼)可能被組譯器解譯成多個“微指令”。
彙編語言不像其他大多數的程式設計語言一樣被廣泛用於程式設計;在今天的實際套用中,它通常被套用在底層硬體操作和高要求的程式最佳化的場合。驅動程式、嵌入式作業系統和實時運行程式都需要組合語言。

使用

在彙編語言中,用助記符(Mnemonic)代替操作碼,用地址符號(Symbol)或標號(Label)代替地址碼。這樣用符號代替機器語言的二進制碼,就把機器語言變成了彙編語言。因此彙編語言亦稱為符號語言。
使用彙編語言編寫的程式,機器不能直接識別,要由一種程式將彙編語言翻譯成機器語言,這種起翻譯作用的程式叫彙編程式,彙編程式是系統軟體中語言處理系統軟體。彙編語言編譯器把彙編程式翻譯成機器語言的過程稱為彙編。

優點

彙編語言比機器語言易於讀寫、調試和修改,同時具有機器語言全部優點。但在編寫複雜程式時,相對高級語言代碼量較大,而且彙編語言依賴於具體的處理器體系結構,不能通用,因此不能直接在不同處理器體系結構之間移植。

特點

1.面向機器的低級語言,通常是為特定的計算機或系列計算機專門設計的。
2.保持了機器語言的優點,具有直接和簡捷的特點。
3.可有效地訪問、控制計算機的各種硬體設備,如磁碟、存儲器、CPU、I/O連線埠等。
4.目標代碼簡短,占用記憶體少,執行速度快,是高效的程式設計語言。
5.經常與高級語言配合使用,套用十分廣泛。
彙編語言的套用:
1.70%以上的系統軟體是用彙編語言編寫的。
2.某些快速處理、位處理、訪問硬體設備等高效程式是用彙編語言編寫的。
3.某些高級繪圖程式視頻遊戲程式是用彙編語言編寫的。

重要性

彙編語言是我們理解整個計算機系統的最佳起點和最有效途徑
人們經常認為彙編語言的套用範圍很小,而忽視它的重要性。其實彙編語言對每一個希望學習計算機科學與技術的人來說都是非常重要的,是不能不學習的語言。
所有可程式計算機都向人們提供機器指令,通過機器指令人們能夠使用機器的邏輯功能。
所有程式,不論用何種語言編制,都必須轉成機器指令,運用機器的邏輯功能,其功能才能得以實現。
機器的邏輯功能,軟體系統功能構築其上,硬體系統功能運行於下。
彙編語言直接描述機器指令,比機器指令容易記憶和理解。通過學習和使用彙編語言,能夠感知、體會、理解機器的邏輯功能,向上為理解各種軟體系統的原理,打下技術理論基礎;向下為掌握硬體系統的原理,打下實踐套用基礎。
學習彙編語言,向上可以理解軟體,向下能夠感知硬體,是我們理解整個計算機系統的最佳起點和最有效途徑。

現狀

隨著現代軟體系統越來越龐大複雜,大量經過了封裝的高級語言如 C/C++,Pascal/Object Pascal 也應運而生。這些新的語言使得程式設計師在開發過程中能夠更簡單,更有效率,使軟體開發人員得以應付快速的軟體開發的要求。而彙編語言由於其複雜性使得其適用領域逐步減小。但這並不意味著彙編已無用武之地。由於彙編更接近機器語言,能夠直接對硬體進行操作,生成的程式與其他的語言相比具有更高的運行速度,占用更小的記憶體,因此在一些對於時效性要求很高的程式、許多大型程式的核心模組以及工業控制方面大量套用。 此外,雖然有眾多程式語言可供選擇,但彙編依然是各大高校計算機科學類專業學生的必修課。因為只有學習了彙編,學生才能深入了解計算機的運行原理,為今後的計算機研究與套用打下良好的基礎。

相關詞條

相關搜尋

熱門詞條

聯絡我們