在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 111條單片機匯編指令注解匯總

            111條單片機匯編指令注解匯總

            作者: 時間:2016-11-23 來源:網(wǎng)絡(luò) 收藏
            Rn:表示當前寄存器區(qū)的8個工作寄存器R0~R7

            Ri:表示當前寄存器區(qū)的R0或R1,可作地址指針即間址寄存器(i=0或1)

            本文引用地址:http://www.biyoush.com/article/201611/320554.htm

            @:為間接寄存器或基址寄存器的前綴.

            Direct: 表示8位內(nèi)部數(shù)據(jù)存儲單元的地址.它可以是內(nèi)部RAM的單元地址0~127.特殊功能

            寄存器SFR的地址(128~255)或名稱,

            A:累加器ACC.

            B:.特殊功能寄存器B,用于MUL和DIV指令中.

            C:進位位Cy.

            #data:表示包含在指令中的單字節(jié)(8位)立即數(shù).如果用16位進制表示,后綴字母為”H”,數(shù)據(jù)范圍00~0FFH,不得一字母開頭;如果用16進制表示無須任何后綴,但必須在0~255之間.

            #data16:表示包含在指令中的雙字節(jié)(16位)立即數(shù).

            Adda16:表示16位的目的地址.用于LCALL和LJMP指令中,目的地址范圍是從0000H~FFFFH的整個64KB存儲地址空間.

            Adda11:表示11位的目的地址.用于ACALL和AJMP的指令中,目的地址必須和下一條指令第一個字節(jié)同處一頁.

            Rel:表示8位帶符號的相對偏移量.用語SJMP和所有的條件轉(zhuǎn)移指令中.偏移量相對于下一條指令的第一個字節(jié)計算,在-128~+127范圍內(nèi)取值.

            DPTR:為數(shù)據(jù)指針,可用作16位的地址寄存器.

            /:加在位操作的前面,表示對該位進行非運算.

            bit:表示內(nèi)部可尋址位或特殊功能寄存器中的直接尋址位.

            “(x):寄存器或地址單元中的內(nèi)容.

            ((x)):有x見解尋址的單元中的內(nèi)容.

            <-:表示將箭頭右邊的內(nèi)容傳送至箭頭的左邊.

            $:當前指令的地址.

            單片機指令系統(tǒng)

            (一) 內(nèi)部數(shù)據(jù)傳送指令

            (1) 以累加器A為目的的傳送指令:

            MOVA,#data;(A)<-data

            MOVA,direct;(A)<-(direct)

            MOVA,Rn;(A)<-(Rn)

            MOVA,@Ri;(A)<- ((Ri))

            (2) 以通用寄存器Rn為目的的傳送指令:

            MOVRn,A;(Rn)<-(A)

            MOVRn, direct; (Rn)<(direct)-

            MOVRn,#data:; (Rn)<-(data)

            (3) 以直接地址為目的的傳送指令:

            MOVdirect,A;(direct)<-(A)

            MOVdirect,Rn; (direct)<-(Rn)

            MOVdirect,direct2; (direct)<-(direct2)

            MOVdirect,@Ri; (direct)<-((Rn))

            MOVdirect,#data; (direct)<-data

            (4) 以寄存器間接地址為目的的傳送指令:

            MOV@Ri,A;((Ri))<-(A)

            MOV@Ri,direct;((Ri))<-(direct)

            MOV@Ri,#data;((Ri))<-data

            (二) 數(shù)據(jù)指針賦值指令(16位數(shù)據(jù)傳送指令)

            MOVDPTR,#data16;

            (三) 片外數(shù)據(jù)傳送指令

            MOVXA,@Ri;(A)<-((Ri))片外

            MOVXA,@DPTR;(A)<-((DPTR))片外

            MOVX@Ri,A;((Ri))片外<-(A)

            MOVX@DPTR, A;((DPTR))片外<-(A)

            (四) ROM數(shù)據(jù)訪問指令(查表指令)

            MOVCA,@A+DPTR;(A)<-((A)+(DPTR))rom

            MOVCA,@A+PC;(PC)<-(PC)+1,(A)<-((A)+(PC))rom

            (五) 堆棧操作指令

            PUSHdirect;(SP)<-(SP)+1,(SP)<-(direct)

            堆棧指針先加1,將數(shù)據(jù)壓入棧頂

            POPdirect;(direct)<-(SP),(SP)<-(SP)-1

            將數(shù)據(jù)從棧頂彈出存入direct,SP再減1

            (六) 數(shù)據(jù)交換指令

            (1)整字節(jié)(8位)交換指令:

            XCHA,Rn;A和Rn中的數(shù)互換

            XCHA,direct;A和direct單元中的數(shù)互換

            XCHA,@Ri;A和Ri間址單元中的數(shù)互換

            (2)半字節(jié)交換指令:

            XCHDA,@Ri;A的低4位Ri間接單元的低4位互換,高4位不動

            (3)累加器高低半字節(jié)交換指令:

            SWAPA,;A的高4位(D7~D4)和低4位(D3~D0)互換

            (七) 加法指令

            (1)不帶Cy加法指令:

            ADDA,Rn;(A)<-(A)+(Rn)

            ADDA,direct; (A)<-(A)+(direct)

            ADDA,@Ri; (A)<-(A)+((Ri))

            ADDA,#data; (A)<-(A)+data

            (2)帶進位加法指令:

            ADDCA,Rn;(A)<-(A) +Cy+(Rn)

            ADDCA,direct; (A)<-(A) +Cy+(direct)

            ADDCA,@Ri; (A)<-(A) +Cy+((Ri))

            ADDCA,#data; (A)<-(A) +Cy+data

            (3)加1指令:

            INCA,;(A)<-(A)+1

            INCRn;(Rn)<-(Rn)+1

            INC@Ri;((Ri))<-((Ri))+1

            INCdirect;(direct)<-(direct)+1

            INCDPTR;(FPTR)<-(DPTR)+1

            (八) 減法指令

            (1)帶進位減法指令:

            SUBBA,Rn;(A)<-(A) -Cy-(Rn)

            SUBBA,direct; (A)<-(A) -Cy-(direct)

            SUBBA,@Ri; (A)<-(A) -Cy-((Ri))

            SUBBA,#data; (A)<-(A) -Cy-data

            (2)減1指令:

            DECA;(A)<-(A)-1

            DECdirect;(direct)<-(durect)-1

            DECRn;(Rn)<-(Rn)-1

            DEC@Ri;((Ri))<-((Ri))-1

            (九) 乘除指令

            (1)乘法指令

            MULAB;(B)(A)<-(A)*(B)

            指令功能是把累加器A和特殊功能寄存器B中兩個8位無符號整數(shù)相乘,并把積的高8位字節(jié)存入B寄存器,低8位字節(jié)存入累加器A.

            (2)除法指令

            DIVAB;A/B,商存入A,余數(shù)存入B

            指令的功能是把累加器A中的8位無符號整數(shù)除以寄存器B中的8位無符號整數(shù)商的整數(shù)部分存入累加器A中,余數(shù)保留在B中.

            (十) 十進制調(diào)整指令

            DAA

            (十一) 邏輯運算指令

            (1)邏輯與運算指令:

            ANLA,Rn;(A)<-(A)∧(Rn)

            ANLA,direct; (A)<-(A)∧(direct)

            ANLA,@Ri; (A)<-(A)∧((Ri))

            ANLA,#data; (A)<-(A)∧data

            ANLdirect,A;(direct)<-(A)∧(direct)

            ANLdirect,#data;(direct<-(direct)∧data

            (2)邏輯或運算指令:

            ORLA,Rn;(A)<-(A)∨(Rn)

            ORLA,direct; (A)<-(A)∨(direct)

            ORLA,@Ri; (A)<-(A)∨((Ri))

            ORLA,#data; (A)<-(A)∨data

            ORLdirect,A;(direct)<-(A)∨(direct)

            ORLdirect,#data; (direct)<-(direct)∨data

            (3)邏輯異或運算指令:

            XRLA,Rn;(A)<-(A)⊙(Rn)

            XRLA,direct; (A)<-(A)⊙(direct)

            XRLA,@Ri; (A)<-(A)⊙((Ri))

            XRLA,#data; (A)<-(A)⊙data

            XRLdirect,A;(direct)<-(A)⊙(direct)

            XRLdirect,#data; (direct)<-(direct)⊙data

            (4)累加器清0和去反指令

            CLRA;(A)<-0(累加器清0指令)

            CLRA;(A)<-(A) (累加器取反指令)

            (5)累加器移位指令:

            不帶進位Cy循環(huán)左移:RLA;Dn+1<-Dn,D0<-D7

            D7

            D6

            D5

            D4

            D3

            D2

            D1

            D0

            不帶進位Cy循環(huán)右移:RRA:Dn+1->Dn,D0<-D7

            D7

            D6

            D5

            D4

            D3

            D2

            D1

            D0

            帶進位Cy循環(huán)左移:RLCA;Cy<-D7,Dn+1<-Dn,D0<-Cy

            D7

            D6

            D5

            D4

            D3

            D2

            D1

            D0

            帶進位Cy循環(huán)右移:RRCA;Cy->D7,Dn+1->Dn,D0->Cy

            (十二) 控制轉(zhuǎn)移指令

            [1] 無條件轉(zhuǎn)移指令:

            (1) 長轉(zhuǎn)移指令LJMPaddr16;(PC)<-addr16

            (2) 絕對轉(zhuǎn)移指令A(yù)JMPaddr11;(PC)<-(PC)+2,(PC)10~0<-addr11

            (3) 短轉(zhuǎn)移指令SJMPrel;(PC)<-(PC)+2+rel

            (4) 變址尋址轉(zhuǎn)移指令JMP@A+DPTR;(PC)<-(A)+(DPTR)

            [2] 條件轉(zhuǎn)移指令:

            (1) 累加器判0轉(zhuǎn)移指令:

            JZrel;如果(A)=0,跳轉(zhuǎn)到目標語句,否則順序執(zhí)行

            JNZrel;如果(A)≠0,跳轉(zhuǎn)到目標語句,否則順序執(zhí)行

            (2) 比較轉(zhuǎn)移指令:

            CJNZA,#data,rel;如果(A)≠data,則跳轉(zhuǎn)到目標語句,否則程序順序執(zhí)行

            CJNZAdirect,rel; 如果(A)≠(direct),則跳轉(zhuǎn)到目標語句,否則程序順序執(zhí)行

            CJNZRn#data,rel; 如果(A)≠data,則跳轉(zhuǎn)到目標語句,否則程序順序執(zhí)行

            CJNZ@Ri#data,rel; 如果(A)≠data,則跳轉(zhuǎn)到目標語句,否則程序順序執(zhí)行

            (3) 循環(huán)控制轉(zhuǎn)移指令:

            DJNZRn,rel;(Rn)先減1,如減1后(Rn)≠0,則跳轉(zhuǎn)到目標語句;否則順序執(zhí)行

            DJNZfirect,rel; (direct)先減1,如減1后(direct)≠0,則跳轉(zhuǎn)到目標語句;否則順序執(zhí)行

            (十三) 子程序調(diào)用和返回指令

            (1) 絕對調(diào)用指令:

            ACALLaddr11

            (2) 長調(diào)用指令:

            LCALLaddr16

            (3) 返回指令:

            RET子程序返回

            RETI中斷服務(wù)程序返回

            (十四) 空操作指令

            NOP空操作指令是一條特殊指令,單片機在執(zhí)行該指令時不進行任何操作,只是消耗1個機器周期的時間,所以該指令長用于延時程序.軟件陷阱程序等

            (十五) 位操作類指令

            (1) 位傳送指令:

            MOVC,bit;(Cy)<-(bit),bit位的狀態(tài)不變

            MOVbit,C; (bit) <- (Cy),Cy位的狀態(tài)不變

            (2) 位置位和復位指令:

            SETBC;(Cy)<-1

            SETBbit;(bit)<-1

            CLRC;(Cy)<-0

            CLRbit;(bit)<-0

            (3) 位運算指令:

            ANLC,bit;(Cy)<-(Cy)∧(bit),Cy位和bit位相與,結(jié)果賦給Cy

            ANLC,/bit;(Cy)<-(Cy)∧(bit),Cy位和bit位相與,結(jié)果賦給Cy

            ORLC,bit;(Cy)<-(Cy)∨(bit),Cy位和bit位相或,結(jié)果賦給Cy

            ORLC,/bit;(Cy)<-(Cy) ∨(bit),Cy位和bit位相或,結(jié)果賦給Cy

            CPLC; (Cy)<-(Cy),Cy位取反

            CPLbit;(bit)<-(bit),bit位取反

            (4) 位測試轉(zhuǎn)移指令:

            (1) 以Cy位狀態(tài)為條件的轉(zhuǎn)移指令

            JCrel;如果Cy位=1,跳轉(zhuǎn)到目標語句,否則順序執(zhí)行

            JNCrel;如果Cy位=0,跳轉(zhuǎn)到目標語句,否則順序執(zhí)行

            (2) 以指定位狀態(tài)為條件的轉(zhuǎn)移指令:

            JBbit,rel;如果bit=1,跳轉(zhuǎn)到目標語句,否則順序執(zhí)行

            JNBbit,rel;如果bit=0,跳轉(zhuǎn)到目標語句,否則順序執(zhí)行

            JBCbit,rel;如果bit=1,跳轉(zhuǎn)到目標語句,同時將bit位清0;否則順序執(zhí)行




            關(guān)鍵詞: 單片機匯編指令注解匯

            評論


            技術(shù)專區(qū)

            關(guān)閉