手把手教你學單片機

2022-03-30 14:11:36 作者:zhangwenbin

學習單片機,不僅要了解單片機的內(nèi)部功能,存儲器空與I/O接口之間的分布,還要掌握其指令系統(tǒng)。MCS-51中有111條指令?,F(xiàn)在介紹一下我們快速總結(jié)的記憶MCS-51指令的方法,供大家參考。

眾所周知,匯編語言指令由操作碼和操作數(shù)組成。Mcs-51采用匯編語言指令,有44個操作碼助記符和33個函數(shù),操作數(shù)為##data、direct、Rn、@Ri等。這里,首先介紹指令助記符和相關符號的記憶方法。

一、助記符號的記憶方法

表枚舉法將44個指令助記符按功能分為五類,每一類用列表的方式記憶。這里,請自行總結(jié)。

2英語還原法

單片機的操作碼助記符是這個指令功能的英文縮寫。將縮寫還原為英文原文,并與中文進行比較,有助于理解其助記符的含義,從而增強記憶。示例:

增量減量

短轉(zhuǎn)移SJMP-短跳長轉(zhuǎn)移LJMP-跳遠

比較轉(zhuǎn)移CJNE-比較跳躍不相等

轉(zhuǎn)移絕對ajmp-絕對跳轉(zhuǎn)空操作nop-nooperation

XCH交易所-交易所追加-追加

乘法MUL-乘法除法DIV-除法

環(huán)形換檔rl-旋轉(zhuǎn)左托架左環(huán)形換檔RLC-旋轉(zhuǎn)

左進位

右后環(huán)-旋轉(zhuǎn)右后環(huán)-旋轉(zhuǎn)

右進位

基于3個功能模塊記憶方法的單片機44條指令助記符,按其指令功能可分為5類,每類按功能相似性原則可分為2~3組。這樣,把東西掰成塊,一個一個的分,實現(xiàn)快速記憶。

1)數(shù)據(jù)傳輸組。2)加減運算組

MOV內(nèi)部數(shù)據(jù)傳輸

MOVC程序存儲器傳輸ADDC帶進位加法MOVX外部數(shù)據(jù)傳輸SUBB帶進位減法

3)邏輯運算組。4)子程序調(diào)用組。

ANL邏輯與長期呼叫

ORL邏輯或ALALL絕對調(diào)用

XRL邏輯異或RET子程序返回

二、指令的記憶方法

指令操作數(shù)的1個符號

MCS-51有六種尋址方式:直接數(shù)字尋址、直接尋址、寄存器尋址、寄存器間尋址、索引尋址和相對尋址。我們必須掌握它的表達方法。

1)直接號碼和直接地址。

Ata表示8位立即數(shù),#data16表示16位立即數(shù),data或direct表示直接地址。

2)RN(n=0-7)、A、B、CY和DPTR寄存器中的地址變量。

3)@R0、@R1、@DPTR和SP代表寄存器之間的地址變量。

4)DPTR+a和PC+a代表索引尋址的變量。

5)PC+rel代表相對尋址變量。

記憶指令助記符,掌握不同尋址方式下指令操作數(shù)的表達方法,為我們記憶匯編指令打下了基礎。MCS-51指令雖然很多,但根據(jù)功能可以分為五類,包括28個數(shù)據(jù)傳輸類、24個算術運算類、25個邏輯運算類、17個控制傳輸類和17個布爾運算類。在每種類型的指令中,根據(jù)其功能,掌握其源操作數(shù)和目的操作數(shù)的不同組合是完全值得記憶的,并輔以以下方法。我們同意可能的目標操作數(shù)是按順序表達的。

對于MOV指令,如果目標操作數(shù)按照A、Rn、direct和@Ri的順序編寫,則可以記住15個MOV指令。例如,累加器A的操作數(shù)可以寫以下四條指令。

MOVA,#數(shù)據(jù)/直接/A/Rn/@Ri

等等,寫其他說明。

MOVRn,#數(shù)據(jù)/直接/A

MOV直營,#數(shù)據(jù)/直營/A/Rn/@Ri

MOV@日,#數(shù)據(jù)/直接/答

2指令圖形存儲方法

圖形內(nèi)存方法是一種內(nèi)存方法,其中具有相同或相似操作功能但操作數(shù)不同的指令用圖形和箭頭表示,以顯示目標操作數(shù)和源操作數(shù)之間的關系。例如,發(fā)送由助記符MOV、MOVX和MOVC組成的數(shù)組的指令可以借助圖1和圖2記憶。

由助記符CJNE形成的四條指令也可以用圖形表示,如圖3所示。

CJNEA,#數(shù)據(jù),relCJNEA,直接,rel

CJNE@Rn,#data,relCJNE@Ri,#data,rel

另外,對于構(gòu)成的18條邏輯運算指令,關于A的四條循環(huán)移位指令也可以用圖解法表示。請自己畫出記憶。

3相似功能分類方法

在MCS-51指令中,我們發(fā)現(xiàn)有些指令的操作碼不同,但功能相似,而操作數(shù)完全相同。功能分類的方法是將具有這樣特征的指令一起記憶。只要記住其中一個,其余的都會記住。例如,12條加減指令,18條與、或、非指令如下:

ADD/ADDC/SUBBA,#數(shù)據(jù)/直接/Rn/@Ri

ANL/ORL/XRLA,#數(shù)據(jù)/直接/Rn/@Ri

ANL/ORL/XRL直達,#數(shù)據(jù)/a

上述每條指令都有相似的功能和相同的操作數(shù)。其他指令如加1(INC)和減1(DEC)也可以按此處理。

4個公式的記憶方法

對于一些說明,我們可以用簡潔的語言記住一個句子中的相關功能。例如PUSH直接和POP直接。初學者往往分不清棧SP的變化,于是編譯了這句話:(SP的內(nèi)容)加1(直接的內(nèi)容)重新進入棧,(SP的內(nèi)容)彈出(到直接的單位)從SP中減去1。再比如乘法指令中積的存儲,除法指令中被除數(shù)、除數(shù)、的存儲,都可以記憶如下。

MULAB高產(chǎn)品(儲存)b,低產(chǎn)品(儲存)a。

DIVABA除以B,商(存款)A大于(低于)B。

以上介紹了幾種快速記憶單片機指令的方法,希望能起到吸引寶貴意見的作用。相信讀者在學習單片機的過程中,可以找到自己的背法。但是有一個好的方法是不夠的,還需要練習,就是多讀一些別人寫的例子和程序,然后根據(jù)實際情況自己寫一些程序。只有這樣,才能更好更快地掌握單片機的指令系統(tǒng)。

>>點擊查看今日優(yōu)惠<<

    本文導航
    熱門文章
    TOP推薦
    相關閱讀
    點擊加載更多