更新時(shí)間:2021年05月13日11時(shí)20分 來源:傳智教育 瀏覽次數(shù):
匯編語言(assembly language)是一種用于電子計(jì)算機(jī)、微處理器、微控制器或其他可編程器件的低級(jí)語言,亦稱為符號(hào)語言。
在匯編語言中,用助記符(Mnemonics)代替機(jī)器指令的操作碼,用地址符號(hào)(Symbol)或標(biāo)號(hào)(Label)代替指令或操作數(shù)的地址。在不同的設(shè)備中,匯編語言對(duì)應(yīng)著不同的機(jī)器語言指令集,通過匯編過程轉(zhuǎn)換成機(jī)器指令。普遍地說,特定的匯編語言和特定的機(jī)器語言指令集是一一對(duì)應(yīng)的,不同平臺(tái)之間不可直接移植。
匯編語言是面向機(jī)器的語言,而不是機(jī)器語言。機(jī)器語言和匯編語言都是最低級(jí)的編程語言,面向機(jī)器,但最最低級(jí)的還是費(fèi)解的機(jī)器語言:0和1。匯編語言的創(chuàng)造是因?yàn)樵谠缙谌藗冮L期與計(jì)算機(jī)痛苦地交流之后隨著對(duì)機(jī)器語言和自然語言、數(shù)學(xué)語言結(jié)合的強(qiáng)烈渴望,開始用一些例如ADD、MOV這樣的單詞表示一些操作,匯編語言可以直接操控硬件,是面向機(jī)器的低級(jí)語言,效率相當(dāng)高,功能相當(dāng)強(qiáng),想學(xué)精通比較不易。
許多匯編程序?yàn)槌绦蜷_發(fā)、匯編控制、輔助調(diào)試提供了額外的支持機(jī)制。有的匯編語言編程工具經(jīng)常會(huì)提供宏,它們也被稱為宏匯編器。
匯編語言不像其他大多數(shù)的程序設(shè)計(jì)語言一樣被廣泛用于程序設(shè)計(jì)。在今天的實(shí)際應(yīng)用中,它通常被應(yīng)用在底層,硬件操作和高要求的程序優(yōu)化的場(chǎng)合。驅(qū)動(dòng)程序、嵌入式操作系統(tǒng)和實(shí)時(shí)運(yùn)行程序都需要匯編語言。
機(jī)器語言(machine language)是一種數(shù)字語言, 專門設(shè)計(jì)成能被計(jì)算機(jī)處理器(CPU)理解。所有 x86 處理器都理解共同的機(jī)器語言。
匯編語言(assembly language)包含用短助記符如 ADD、MOV、SUB 和 CALL 書寫的語句。匯編語言與機(jī)器語言是一對(duì)一(one-to-one)的關(guān)系:每一條匯編語言指令對(duì)應(yīng)一條機(jī)器語言指令。寄存器(register)是 CPU 中被命名的存儲(chǔ)位置,用于保存操作的中間結(jié)果。
高級(jí)語言如Python、C++ 和 Java 與匯編語言和機(jī)器語言的關(guān)系是一對(duì)多(one-to-many)。比如,C++ 的一條語句就會(huì)擴(kuò)展為多條匯編指令或機(jī)器指令。
一種語言,如果它的源程序能夠在各種各樣的計(jì)算機(jī)系統(tǒng)中進(jìn)行編譯和運(yùn)行,那么這種語言被稱為是可移植的(portable)。
例如,一個(gè) C++ 程序,除非需要特別引用某種操作系統(tǒng)的庫函數(shù),否則它就幾乎可以在任何一臺(tái)計(jì)算機(jī)上編譯和運(yùn)行。Java 語言的一大特點(diǎn)就是,其編譯好的程序幾乎能在所有計(jì)算機(jī)系統(tǒng)中運(yùn)行。
匯編語言不是可移植的,因?yàn)樗菫樘囟ㄌ幚砥飨盗性O(shè)計(jì)的。目前廣泛使用的有多種不同的匯編語言,每一種都基于一個(gè)處理器系列。
對(duì)于一些廣為人知的處理器系列如 Motorola 68x00、x86、SUN Sparc、Vax 和 IBM-370,匯編語言指令會(huì)直接與該計(jì)算機(jī)體系結(jié)構(gòu)相匹配,或者在執(zhí)行時(shí)用一種被稱為微代碼解釋器(microcode interpreter)的處理器內(nèi)置程序來進(jìn)行轉(zhuǎn)換。
猜你喜歡:
北京校區(qū)