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