什么是匯編語言
編輯匯編語言,是任何一種低級編程語言,其中語言中的指令與體系結構的機器代碼指令之間有很強的對應關系。因為匯編依賴于機器代碼指令,所以每種匯編語言都是為一種特定的計算機體系結構而設計的。匯編語言也可以稱為符號機器碼。
匯編代碼由稱為匯編程序的實用程序轉換為可執行的機器代碼。轉換過程被稱為組件,如在組裝的源代碼。匯編語言通常每條機器指令有一條語句(1:1),但通常也支持常量、注釋、匯編指令、程序和內存位置的符號標簽以及宏。
“匯編程序”一詞通常歸因于Wilkes、Wheeler和Gill在他們1951年出版的《電子數字計算機程序的準備》一書中,然而,他們使用該術語來表示“將另一個程序組裝起來的程序,該程序由多個程序組成。部分合并為一個程序”。
每種匯編語言都特定于特定的計算機體系結構,有時也特定于操作系統。然而,一些匯編語言沒有為操作系統調用提供特定的語法,大多數匯編語言可以在任何操作系統上普遍使用,因為該語言提供了對處理器所有實際功能的訪問,所有系統調用都基于這些功能機制最終休息。與匯編語言相比,大多數高級編程語言通常可以跨多種架構移植,但需要解釋或編譯,比組裝復雜得多的任務。
匯編語言語法
編輯匯編語言使用助記符來表示每個低級機器指令或操作碼,通常也是每個架構寄存器、標志等。許多操作需要一個或多個操作數才能形成完整的指令。大多數匯編器允許程序和內存位置的命名常量、寄存器和標簽,并且可以計算操作數的表達式。因此,程序員從繁瑣的重復計算中解脫出來,匯編程序比機器代碼更具可讀性。根據體系結構,這些元素也可以組合用于特定指令或尋址模式使用偏移量或其他數據以及固定地址。許多匯編程序提供了額外的機制來促進程序開發、控制匯編過程和幫助調試。
匯編語言的典型應用
編輯- 匯編語言通常用于系統的引導代碼,這是在引導操作系統之前初始化和測試系統硬件的低級代碼,通常存儲在ROM中。(IBM兼容PC系統和CP/M上的BIOS就是一個例子。)
- 匯編語言通常用于低級代碼,例如操作系統內核,它不能依賴于預先存在的系統調用的可用性,并且必須確實為系統將在其上運行的特定處理器體系結構實現它們。
- 一些編譯器在完全編譯之前先將高級語言翻譯成匯編,從而允許查看匯編代碼以進行調試和優化。
- 一些相對低級語言的編譯器,例如Pascal或C,允許程序員直接在源代碼中嵌入匯編語言(所謂的內聯匯編)。使用這些工具的程序然后可以在每個硬件平臺上使用不同的匯編語言構建抽象。然后,系統的可移植代碼可以通過統一接口使用這些特定于處理器的組件。
- 匯編語言在逆向工程中很有用。許多程序僅以機器碼形式分發,通過反匯編器直接將其翻譯成匯編語言,但通過反編譯器將其翻譯成高級語言則比較困難。諸如交互式反匯編器之類的工具為此目的廣泛使用了反匯編。黑客使用這種技術來破解商業軟件,而競爭對手使用這種技術來生產與競爭公司具有相似結果的軟件。
- 匯編語言用于提高執行速度,尤其是在處理能力和RAM有限的早期個人計算機中。
- 匯編器可用于從格式化和注釋的源代碼生成供其他代碼使用的數據塊,沒有高級語言開銷。
內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/127530/