匯編語言(Assembly Language) 是面向機(jī)器的程序設(shè)計(jì)語言。在匯編語言中,用助記符(Memoni)代替機(jī)器指令的操作碼,用地址符號(hào)(Symbol)或標(biāo)號(hào)(Label)代替指令或操作數(shù)的地址,如此就增強(qiáng)了程序的可讀性和編寫難度,象這樣符號(hào)化的程序設(shè)計(jì)語言就是匯編語言,因此亦稱為符號(hào)語言。使用匯編語言編寫的程序,機(jī)器不能直接識(shí)別,還要由匯編程序或者叫匯編語言編譯器轉(zhuǎn)換成機(jī)器指令。匯編程序?qū)⒎?hào)化的操作代碼組裝成處理器可以識(shí)別的機(jī)器指令,這個(gè)組裝的過程稱為組合或者匯編。因此,有時(shí)候人們也把匯編語言稱為組合語言。
匯編語言特點(diǎn)
1.機(jī)器相關(guān)性。
這是一種面向機(jī)器的低級(jí)語言,通常是為特定的計(jì)算機(jī)或系列計(jì)算機(jī)專門設(shè)計(jì)的。因?yàn)槭菣C(jī)器指令的符號(hào)化表示,故不同的機(jī)器就有不同的匯編語言。使用匯編語言能面向機(jī)器并較好地發(fā)揮機(jī)器的特性,得到質(zhì)量較高的程序。
2.高速度和高效率。
匯編語言保持了機(jī)器語言的優(yōu)點(diǎn),具有直接和簡(jiǎn)捷的特點(diǎn),可有效地訪問、控制計(jì)算機(jī)的各種硬件設(shè)備,如磁盤、存儲(chǔ)器、CPU、I/O端口等,且占用內(nèi)存少,執(zhí)行速度快,是高效的程序設(shè)計(jì)語言。
3.編寫和調(diào)試的復(fù)雜性。
由于是直接控制硬件,且簡(jiǎn)單的任務(wù)也需要很多匯編語言語句,因此在進(jìn)行程序設(shè)計(jì)時(shí)必須面面俱到,需要考慮到一切可能的問題,合理調(diào)配和使用各種軟、硬件資源。這樣,就不可避免地加重了程序員的負(fù)擔(dān)。與此相同,在程序調(diào)試時(shí),一旦程序的運(yùn)行出了問題,就很難發(fā)現(xiàn)。
匯編語言優(yōu)點(diǎn)
1、因?yàn)橛脜R編語言設(shè)計(jì)的程序最終被轉(zhuǎn)換成機(jī)器指令,故能夠保持機(jī)器語言的一致性,直接、簡(jiǎn)捷,并能象機(jī)器指令一樣訪問、控制計(jì)算機(jī)的各種硬件設(shè)備,如磁盤、存儲(chǔ)器、CPU、I/O端口等。使用匯編語言,可以訪問所有能夠被訪問的軟、硬件資源。
2、目標(biāo)代碼簡(jiǎn)短,占用內(nèi)存少,執(zhí)行速度快,是高效的程序設(shè)計(jì)語言,經(jīng)常與高級(jí)語言配合使用,以改善程序的執(zhí)行速度和效率,彌補(bǔ)高級(jí)語言在硬件控制方面的不足,應(yīng)用十分廣泛。
匯編語言缺點(diǎn)
1、匯編語言是面向機(jī)器的,處于整個(gè)計(jì)算機(jī)語言層次結(jié)構(gòu)的底層,故被視為一種低級(jí)語言,通常是為特定的計(jì)算機(jī)或系列計(jì)算機(jī)專門設(shè)計(jì)的。因此,不同的處理器有不同的匯編語言語法和編譯器,編譯的程序無法在不同的處理器上執(zhí)行,缺乏可移植性;
2、難于從匯編語言代碼上理解程序設(shè)計(jì)意圖,可維護(hù)性差,即使是完成簡(jiǎn)單的工作也需要大量的匯編語言代碼,很容易產(chǎn)生bug,難于調(diào)試;
3、使用匯編語言必須對(duì)某種處理器非常了解,而且只能針對(duì)特定的體系結(jié)構(gòu)和處理器進(jìn)行優(yōu)化,開發(fā)效率很低,周期長且單調(diào)。
|