匯編語(yǔ)言基礎
通過(guò)前面的學(xué)習,我們對單片機的硬件結構已有了一定的了解,下面,我們將與大家一起來(lái)學(xué)習單片機的匯編指令系統。
所謂指令,就是規定計算機進(jìn)行某種操作的命令。計算機按程序一條一條地依次執行指令,從而完成指定任務(wù)。一條指令只能完成有限的功能,為使計算機完成一定的或者復雜的功能,就需要一系列指令。
一般來(lái)說(shuō),一臺計算機的指令越豐富,尋址方式越多,且每條指令的執行速度越快,則它的總體功能就越強。
程序設計語(yǔ)言:機器語(yǔ)言,匯編語(yǔ)言,高級語(yǔ)言
我們學(xué)習的80C51單片機共有111條指令,這111條指令共有七種尋址方式。其中:
數據傳送類(lèi)指令 29條
算術(shù)運算類(lèi)指令 24條
邏輯運算及移位類(lèi)指令 24條
控制轉移類(lèi)指令 17條
位操作指令 17條
這111條指令的具體功能我們在后面的課程中將會(huì )逐條的與大家進(jìn)行分析。
由于計算機只能識別二進(jìn)制數,所以計算機的指令均由二進(jìn)制代碼組成。為了閱讀和書(shū)寫(xiě)的方便,常把它寫(xiě)成十六進(jìn)制形式,通常稱(chēng)這樣的指令為機器指令?,F在一般的計算機都有幾十甚至幾百種指令。顯然即便用十六進(jìn)制去書(shū)寫(xiě)和記憶也是不容易的,為了便于記憶和使用的方便,制造廠(chǎng)家對指令系統的每一條指令都給出了助記符。
助記符是根據機器指令不同的功能和操作對象來(lái)描述指令的符號。由于助記符是用英文縮寫(xiě)來(lái)描述指令的特征,因此它不但便于記憶,也便于理解和分類(lèi)。這種用助記符形式來(lái)表示的機器指令稱(chēng)為匯編語(yǔ)言指令。匯編語(yǔ)言有如下特點(diǎn):
① 助記符指令和機器指令一一對應,所以用匯編語(yǔ)言編寫(xiě)的程序效率高,占用存儲空間小,運行速度快,因此匯編語(yǔ)言能編寫(xiě)出最優(yōu)化的程序。
② 使用匯編語(yǔ)言編程比使用高級語(yǔ)言困難。因為匯編語(yǔ)言是面向計算機的,匯編語(yǔ)言的程序設計人員必須對計算機硬件有相當深入的了解。
③ 匯編語(yǔ)言能直接訪(fǎng)問(wèn)存儲器及接口電路,也能處理中斷,因此匯編語(yǔ)言程序能直接管理和控制硬件設備。④ 匯編語(yǔ)言缺乏通用性,程序不易移植,各種計算機都有自己的匯編語(yǔ)言,不同計算機的匯編語(yǔ)言之間不能通用。
匯編指令的格式MCS-51匯編語(yǔ)言的語(yǔ)句格式表示如下:
〔標號>〕:操作碼>〔操作數>〕;〔注釋>〕
即一條匯編語(yǔ)句是由標號、操作碼、操作數和注釋四個(gè)部分所組成,其中方括號括起來(lái)的是可選擇部分,可有可無(wú),視需要而定。
指令通常兩部份組成:操作碼、操作數
操作碼:是由助記符表示的字符串,操作碼其實(shí)就是告訴我們這條指令是起什么樣的一個(gè)功能,是加?減?傳送?還是控制?等等。
操作數:是指參加操作的數據或者是數據地址。
注釋?zhuān)簽榱吮阌谖覀冮喿x程序,通常我們在指令的后面都會(huì )加上注釋。
標號:用來(lái)表示子程序名稱(chēng)或程序執行條件跳轉時(shí)的程序跳轉地址,實(shí)際上是表示一個(gè)地址值。
在80C51指令系統中,操作數可以是1、2、3個(gè),也可以沒(méi)有。不同功能的指令,操作數作用也不同。
例如,傳送類(lèi)指令多數有兩個(gè)操作數,寫(xiě)在左面的稱(chēng)為目的操作數(表示操作結果存放的單元地址),寫(xiě)在右面的稱(chēng)為源操作數(指出操作數的來(lái)源)。
評論