MCS-51指令系統(tǒng)_第1頁
MCS-51指令系統(tǒng)_第2頁
MCS-51指令系統(tǒng)_第3頁
MCS-51指令系統(tǒng)_第4頁
MCS-51指令系統(tǒng)_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、2022-3-61第第3章章MCS-51MCS-51指令系統(tǒng)指令系統(tǒng) 1 1 匯編語言與指令系統(tǒng)匯編語言與指令系統(tǒng) 2 2 尋址方式尋址方式 3 3 數(shù)據(jù)傳送類指令數(shù)據(jù)傳送類指令 4 4 算術操作指令算術操作指令 邏輯操作類命令邏輯操作類命令 6 6 程序轉(zhuǎn)換類指令程序轉(zhuǎn)換類指令 7 7 位操作指令位操作指令 8 8 匯程序格式及偽指令匯程序格式及偽指令 應用舉例應用舉例 2022-3-621 1 匯編語言與指令系統(tǒng)匯編語言與指令系統(tǒng)機器語言(二進制代碼)機器語言(二進制代碼)效率高,程序短,執(zhí)行速度快,效率高,程序短,執(zhí)行速度快,可讀性差,通用性差可讀性差,通用性差匯編語言(指令助記符)匯編

2、語言(指令助記符)解釋解釋編譯編譯高級語言高級語言效率低,程序龐大,效率低,程序龐大,可讀性好,可移植性好可讀性好,可移植性好MCS51指令系統(tǒng)指令系統(tǒng)l l111條指令,分為數(shù)據(jù)傳送,算術操作,邏輯操作,程序轉(zhuǎn)移,條指令,分為數(shù)據(jù)傳送,算術操作,邏輯操作,程序轉(zhuǎn)移,位操作位操作5類。類。l l單字節(jié)單字節(jié)49條條,雙字節(jié)雙字節(jié)46條條,三字節(jié)三字節(jié)16條條l l單周期單周期64條條,1s(12MHz時)時);雙周期雙周期45條條,2s;四周期四周期2條條4s2022-3-632尋址方式尋址方式名稱名稱 形式形式說明說明單單片片機機中中的的數(shù)數(shù)立即立即數(shù)數(shù)#0f0h8位立即數(shù)位立即數(shù)#1234

3、h16位立即數(shù)位立即數(shù)寄存寄存器器R1R8本質(zhì)上是訪問的本質(zhì)上是訪問的內(nèi)部內(nèi)部RAMA B DPTR特殊功能寄存器特殊功能寄存器(內(nèi)部內(nèi)部)存存儲儲器器10H(8位直接地位直接地址址)可能是字節(jié)地址可能是字節(jié)地址,也可能是位地址也可能是位地址,但但只能訪問只能訪問內(nèi)部內(nèi)部RAM或或SFRR0或或R1DPTR8位及位及16位寄存器間接尋址位寄存器間接尋址, R1或或R2內(nèi)部內(nèi)部RAM或外部或外部RAM, DPTR只能為只能為外部外部RAM(內(nèi)用內(nèi)用MOV,外用外用MOVX)A+PCA+DPTR用于訪問程序存儲器用于訪問程序存儲器(內(nèi)或外都用內(nèi)或外都用MOVC)2022-3-642尋址方式尋址方式

4、指令分為操作碼,操作數(shù),許多指令都有操作數(shù)指令分為操作碼,操作數(shù),許多指令都有操作數(shù)從操作數(shù)所在地址尋找到與本指令有關的操作數(shù),就是尋址從操作數(shù)所在地址尋找到與本指令有關的操作數(shù),就是尋址MCS-51MCS-51尋址方式分:尋址方式分:(1 1)立即尋址)立即尋址MOV AMOV A,#40H #0F0H#40H #0F0H等,有等,有“0 0”在前在前 立即數(shù)立即數(shù) 操作數(shù)就在操作碼之后操作數(shù)就在操作碼之后(2 2)寄存器尋址)寄存器尋址MOV AMOV A,R R0 0寄存器,寄存器,操作數(shù)在操作數(shù)在R R0 0寄存器中寄存器中(3 3)寄存器間接尋址)寄存器間接尋址MOV AMOV A,

5、RRj j j=0 j=0、1 1 MOVX AMOVX A,RRj j MOVX AMOVX A,DPTR DPTR 等等2022-3-652尋址方式尋址方式(4)直接尋址)直接尋址MOVA,30HACALLaddr11AJMPaddr11LCALLaddr16LJMPaddr16直接位尋址直接位尋址SETB80H等等(5)基礎寄存器加變址寄存器間接尋址)基礎寄存器加變址寄存器間接尋址MOVCA, A+DPTRMOVCA, A+PC(6)相對尋址相對尋址操作數(shù)中有操作數(shù)中有rel標記:標記:rel為有符號數(shù)為有符號數(shù)-128127注意操作數(shù)的算法,注意操作數(shù)的算法,應為:應為: 目的地址目的

6、地址- -(當前指令地址(當前指令地址+該指令字節(jié)數(shù))該指令字節(jié)數(shù))2022-3-663數(shù)據(jù)傳送類指令數(shù)據(jù)傳送類指令3-1以累加器以累加器A為一方的傳送指令(單周期)為一方的傳送指令(單周期)(1)MOVA,Rii=07,具體單元由具體單元由PSW的的RS0,RS1定定MOVRi,A(2)MOVA, Rj片內(nèi)片內(nèi)RAM(51系列系列Rj值為值為07F,52系列,系列,Rj為為0FF)MOV Rj,A的數(shù)據(jù)與的數(shù)據(jù)與A之間的傳送之間的傳送j=0、1(3)MOVA,direct訪問片內(nèi)訪問片內(nèi)RAM,direct為片內(nèi)為片內(nèi)RAM地址地址MOVdirect,A注意:對于注意:對于51,它訪問所有,

7、它訪問所有RAM(128字節(jié))及有定義的字節(jié))及有定義的SFR共共21字節(jié)字節(jié)對于對于52,它只訪問,它只訪問128字節(jié)字節(jié)RAM(其余(其余RAM有(有(2)方式訪問)及)方式訪問)及有定義的有定義的SFR(26字節(jié))。字節(jié))。2022-3-673數(shù)據(jù)傳送類指令數(shù)據(jù)傳送類指令3-2不以累加器不以累加器A為一方傳送指令(二周期)為一方傳送指令(二周期)(1)MOVdirectRi訪問片內(nèi)訪問片內(nèi)RAM的低的低128字節(jié)及字節(jié)及SFRMOVRi,direct雙字節(jié)指令,第雙字節(jié)指令,第2字節(jié)為直接尋址的地址字節(jié)為直接尋址的地址(2)MOVdirect, Rj某片內(nèi)某片內(nèi)RAM單元(單元(0FF)

8、內(nèi)容送片)內(nèi)容送片內(nèi)內(nèi)RAM(128字節(jié))或字節(jié))或SFRMOV Rj,direct(3)MOVdirect,direct某直接尋址字節(jié)送另一直接尋址字節(jié)某直接尋址字節(jié)送另一直接尋址字節(jié)(128RAM及及SFR),不可訪問),不可訪問52系列的高系列的高128字節(jié)片內(nèi)字節(jié)片內(nèi)RAM2022-3-683數(shù)據(jù)傳送類指令數(shù)據(jù)傳送類指令3-3用立即數(shù)置數(shù)的指令用立即數(shù)置數(shù)的指令(1)MOVA,#data雙字節(jié)指令,第雙字節(jié)指令,第2字節(jié)為立即數(shù)字節(jié)為立即數(shù)(2)MOVRi,#data雙字節(jié)指令,第雙字節(jié)指令,第2字節(jié)為立即數(shù)字節(jié)為立即數(shù)(3)MOV Rj,#data立即數(shù)送片內(nèi)立即數(shù)送片內(nèi)RAM雙字節(jié)

9、指令,第雙字節(jié)指令,第2字節(jié)為立即數(shù)字節(jié)為立即數(shù)(4)MOVdirect,#data立即數(shù)送直接地址(片內(nèi)立即數(shù)送直接地址(片內(nèi)RAM07F或或SFR)三字節(jié)指令,第三字節(jié)指令,第2字節(jié)為直接地址,第字節(jié)為直接地址,第3字節(jié)為立即數(shù)字節(jié)為立即數(shù)(5)MOVDPTR,#data16位立即數(shù)送數(shù)據(jù)指針位立即數(shù)送數(shù)據(jù)指針唯一的一條唯一的一條16位數(shù)據(jù)傳送指令,位數(shù)據(jù)傳送指令,三字節(jié)指令三字節(jié)指令2022-3-693數(shù)據(jù)傳送類指令數(shù)據(jù)傳送類指令3-4訪問片外訪問片外RAM(三周期)(三周期)訪問片外訪問片外RAM,用,用MOVX指針指針(1)MOVXA, Rj訪問片外訪問片外0FF單元,單元,8位編址

10、,單字節(jié)位編址,單字節(jié)指令指令MOVX Rj,A(2)MOVXA, DPTR訪問片外訪問片外0000FFFF單元,單元,16位編位編址,單字節(jié)指令址,單字節(jié)指令MOVX DPTR,A2022-3-6103數(shù)據(jù)傳送類指令數(shù)據(jù)傳送類指令3-5基址寄存器加變址寄存器間址指令(基址寄存器加變址寄存器間址指令(2周期)周期)(1)MOVCA, A+DPTR訪問程序存貯器,單字節(jié)指令訪問程序存貯器,單字節(jié)指令例例執(zhí)行前執(zhí)行前A=5DPTR=2000H在在2005H單元存放值為單元存放值為8,則,則執(zhí)行后執(zhí)行后A為為8(2)MOVCA, A+PC訪問程序存貯器,單字節(jié)指令訪問程序存貯器,單字節(jié)指令注意:若當

11、前單字節(jié)為注意:若當前單字節(jié)為2000地址,則地址,則PC值為值為2001,因為執(zhí)行此指,因為執(zhí)行此指令時,令時,PC已已+12022-3-6113數(shù)據(jù)傳送類指令數(shù)據(jù)傳送類指令3-6交換指令交換指令數(shù)據(jù)交換,互為源地址與目的地址(單周期)數(shù)據(jù)交換,互為源地址與目的地址(單周期)(1)XCHA,Ri單字節(jié)單字節(jié)(2)XCHA, Rj單字節(jié)單字節(jié)(3)XCHA,direct雙字節(jié),第雙字節(jié),第2字節(jié)為直接尋址字節(jié)為直接尋址(4)XCHDA, Rj單字節(jié)指令,單字節(jié)指令,交換低半字節(jié)交換低半字節(jié)(5)SWAPA單字節(jié)指令,單字節(jié)指令,交換交換A的高低半字節(jié)的高低半字節(jié)2022-3-6123數(shù)據(jù)傳送類

12、指令數(shù)據(jù)傳送類指令3-7進棧出棧(進棧出棧(2周期)周期)(1)PUSHdirect雙字節(jié)指令,第雙字節(jié)指令,第2字節(jié)直接尋址字節(jié)直接尋址(SP)(SP)+1(SP)(direct)(2)POPdirect雙字節(jié)指令,第雙字節(jié)指令,第2字節(jié)為直接尋址字節(jié)為直接尋址(direct)(SP)(SP)(SP)-12022-3-6134算術操作類指令算術操作類指令INCDPTR為周期為周期MULAB為周期為周期DLVAB其余為單周期其余為單周期4-1加法指令加法指令(1)ADDA,Ri單字節(jié)指令單字節(jié)指令ADDCA,Ri進位位進入最低位進位位進入最低位(2)ADDA,RRj j 單字節(jié)指令單字節(jié)指令A

13、DDCA,RRj j 訪問片內(nèi)訪問片內(nèi)RAMRAM(0 0FFFF)(3 3)ADD AADD A,direct direct 直接尋址字節(jié)與累加器相加,直接尋址字節(jié)與累加器相加,ADDC AADDC A,direct direct 雙字節(jié)指令,第雙字節(jié)指令,第2 2字節(jié)為直接尋址字節(jié)為直接尋址(4 4)ADD AADD A, #data #data 立即數(shù)與累加數(shù)相加立即數(shù)與累加數(shù)相加 ADDC AADDC A, #data #data 雙字節(jié)指令,第雙字節(jié)指令,第2 2字節(jié)為立即數(shù)字節(jié)為立即數(shù)2022-3-6144算術操作類指令算術操作類指令4-1加法指令加法指令說明:說明: * * 加法

14、運算時,加法運算時,PSWPSW的影響的影響 相加后整個字節(jié)有溢出相加后整個字節(jié)有溢出 C C置位,否則置位,否則C C為為0 0 低半字節(jié)有溢出低半字節(jié)有溢出 ACAC置位,否則置位,否則ACAC為為0 0 最高位與次高位有一個進位,最高位與次高位有一個進位,OVOV置位,否則置位,否則OVOV為為0 0 * *加法有帶符號數(shù)相加與不帶符號數(shù)相加之分,但機器本身是做統(tǒng)加法有帶符號數(shù)相加與不帶符號數(shù)相加之分,但機器本身是做統(tǒng)一處理,并不認識有無符號,也不接受負數(shù)輸入(要用補碼表示),一處理,并不認識有無符號,也不接受負數(shù)輸入(要用補碼表示),運算結(jié)果要由人為判定。運算結(jié)果要由人為判定。 * *

15、 OV OV為為1 1表示超出一個字節(jié)對有符號數(shù)的表示范圍,表示超出一個字節(jié)對有符號數(shù)的表示范圍,-128-1281271272022-3-6154算術操作類指令算術操作類指令4-2 4-2 減法指令減法指令 均涉及進位位均涉及進位位(1 1)SUBB ASUBB A,R Ri i 單字節(jié)單字節(jié) A-RA-Ri i-C-C(2 2)SUBB ASUBB A,RRj j 單字節(jié)單字節(jié) 片內(nèi)片內(nèi)RAMRAM(3 3)SUBB ASUBB A,direct direct 雙字節(jié)雙字節(jié) 第第1 1字節(jié)為字節(jié)為95H95H,第二字節(jié)為直接地址,第二字節(jié)為直接地址(4 4)SUBB ASUBB A,#da

16、ta #data 雙字節(jié),第二字節(jié)為雙字節(jié),第二字節(jié)為data data 2022-3-6164算術操作類指令算術操作類指令4-2 4-2 減法指令減法指令說明:說明:* * 減法運算影響減法運算影響PSWPSW 不夠減(最高位有借位)不夠減(最高位有借位) C=1C=1 低半字節(jié)不夠減低半字節(jié)不夠減AC=1C=1 最高位與次高位不同時借位(有一個)最高位與次高位不同時借位(有一個) OV=1 OV=1 否則為否則為0 0C OV C OV (+ +)- -(+ +) (+ +)- -(- -) (- -)- -(+ +) (- -)- -(- -)0 0 127-1=126 -1-1=-2

17、-1-(-128)=1270 0 127-1=126 -1-1=-2 -1-(-128)=1270 1 0 1 -128-127=1-128-127=11 0 1-127=-126 1-(-1)=2 -128-(-1)=-127 1 0 1-127=-126 1-(-1)=2 -128-(-1)=-127 1 1 1 1 127-(-128)=-1127-(-128)=-12022-3-6174算術操作類指令算術操作類指令4-2 4-2 減法指令減法指令例:例:80H-81H80H-81H 128-129 -1 128-129 -1 正確(有符號數(shù))正確(有符號數(shù))1000 0000 128-

18、1000 0000 128-(-127-127) 255 255 正確,無符號數(shù)正確,無符號數(shù)1000 0001 C=1 OV=0 -128-129 -257 1000 0001 C=1 OV=0 -128-129 -257 出錯出錯1111 1111 -128-1111 1111 -128-(-127-127) -1 -1 正確,有符號數(shù)正確,有符號數(shù)注:無論加法運算,還是減法運算,均掌握規(guī)律。注:無論加法運算,還是減法運算,均掌握規(guī)律。l只要給定兩數(shù)只要給定兩數(shù)0000FFHFFH,運算后其結(jié)果是定的,對運算后其結(jié)果是定的,對PSWPSW相關位(相關位(C C、OVOV、ACAC等)的影響

19、也是定的。等)的影響也是定的。l得到的結(jié)果是否正是用戶所需的,要看操作數(shù)的其正意義,(比得到的結(jié)果是否正是用戶所需的,要看操作數(shù)的其正意義,(比如如FFHFFH可能代表可能代表-1-1,也可能代表,也可能代表255255),該結(jié)果可能有效,也可能無),該結(jié)果可能有效,也可能無效,可能當成有符號數(shù),也可能當成無符號數(shù)。效,可能當成有符號數(shù),也可能當成無符號數(shù)。l用戶按照你輸入的操作數(shù)的具體意圖及用戶按照你輸入的操作數(shù)的具體意圖及PSWPSW的相關位來判斷結(jié)果的的相關位來判斷結(jié)果的正確性。正確性。 2022-3-6184算術操作類指令算術操作類指令4-34-3加加1指令指令 (不影響標志位)(不影

20、響標志位)(1 1)INC A INC A 單字節(jié)單字節(jié)(2 2)INC RINC Ri i 單字節(jié)單字節(jié)(3 3)INC RINC Rj j 單字節(jié)單字節(jié)(4 4)INC direct INC direct 雙字節(jié),第二字節(jié)為直接地址雙字節(jié),第二字節(jié)為直接地址(5 5)INC DPTR INC DPTR 單字節(jié)單字節(jié) 。 2022-3-6194算術操作類指令算術操作類指令4-44-4減減1指令指令 (不影響標志位)(不影響標志位)(1 1)DEC ADEC A(2 2)DEC RDEC R i i(3 3)DEC RDEC Rj j(4 4)DEC direct DEC direct 202

21、2-3-6204算術操作類指令算術操作類指令4-5 4-5 其它算術操作指令其它算術操作指令(1 1)DA A DA A 單字節(jié),累加器內(nèi)容十進制調(diào)整單字節(jié),累加器內(nèi)容十進制調(diào)整 機器操作是按機器操作是按2 2進制,如要作進制,如要作BCDBCD碼運算,則需調(diào)整,例:碼運算,則需調(diào)整,例: (3838)BCDBCD+ +(8989)BCDBCD 0011 1000 1100 0001 0011 1000 1100 0001 1000 1001 0110 0110 127 1000 1001 0110 0110 127 1100 0001 10010 0111 1100 0001 10010 0

22、111 非法非法 AC=1AC=1lA A為為1或低四位非法,低或低四位非法,低4位位l為或高四位非法,高位為或高四位非法,高位l不會同時出現(xiàn)二者不會同時出現(xiàn)二者l調(diào)整過程運算結(jié)果,只影響,不影響、調(diào)整過程運算結(jié)果,只影響,不影響、 2022-3-6214算術操作類指令算術操作類指令4-5 4-5 其它算術操作指令其它算術操作指令()()()()結(jié)高位低位()()結(jié)高位低位單字節(jié)周期指令單字節(jié)周期指令不影響不影響影響標志位:影響標志位:;若積大于若積大于,則為,否則為則為,否則為若為,可只取中結(jié)果若為,可只取中結(jié)果()()()()商余數(shù)()()商余數(shù)影響標志位:,除數(shù)為時,為,否則為。影響標志

23、位:,除數(shù)為時,為,否則為。 2022-3-622邏輯操作類命令邏輯操作類命令共條共條direct direct datadatadirect direct datadata為兩個機器周期為兩個機器周期direct direct datadata5-1 5-1 與指令與指令:用于修改某些單元的內(nèi)容,用讀修改寫的方式用于修改某些單元的內(nèi)容,用讀修改寫的方式控制位為時,使相關位清,這則保持不變??刂莆粸闀r,使相關位清,這則保持不變。共條共條ANLANL,i i 單單 ANL AANL A, #0FEH#0FEHANLANL, j j 單單ANL PSWANL PSW, #1110 0111B#11

24、10 0111BANL AANL A,direct direct 雙雙ANL directANL direct,A A 雙雙 無法修改無法修改5252的高的高128128字節(jié)字節(jié)RAMRAMANL AANL A, #data #data 雙雙ANL directANL direct,#data #data 三三 2022-3-623邏輯操作類命令邏輯操作類命令5-2 5-2 或指令或指令 控制位為控制位為0 0,則保持不變,為,則保持不變,為1 1則是則是1 1ORL AORL A,R Ri i 單單ORL AORL A,RRj j 單單ORL AORL A,direct direct 雙雙O

25、RL directORL direct,A A 雙雙ORL AORL A,#data #data 雙雙ORL directORL direct,#data #data 三三例例 P P1 1端口前三位不變,后五位由端口前三位不變,后五位由A A的后的后5 5位決定位決定ANL AANL A,#0001 1111B A#0001 1111B A前三位為前三位為0 0,后,后5 5位不變位不變ORL PORL P1 1,A PA P1 1前三位不變,后前三位不變,后5 5位中根據(jù)位中根據(jù)A A,把該置,把該置1 1的置位的置位ORL AORL A,#1110 0000 B A#1110 0000

26、B A前三位為前三位為1 1,后,后5 5位不變位不變ANL PANL P1 1,A PA P1 1前三位不變,后前三位不變,后5 5位中根據(jù)位中根據(jù)A A,把該置,把該置0 0的清的清0 0 2022-3-624邏輯操作類命令邏輯操作類命令5-3 5-3 異或指令異或指令 控制位為控制位為1 1,使原相應位改變,使原相應位改變 控制位為控制位為0 0,使相應位不變,使相應位不變XRL AXRL A, R Ri i 單單XRL AXRL A, RRj j 單單XRL AXRL A,direct direct 雙雙XRL directXRL direct,A A 雙雙XRL AXRL A,#da

27、ta #data 雙雙XRL directXRL direct,#data #data 三三 第第2 2為直接地址,第為直接地址,第3 3字節(jié)為立即數(shù)字節(jié)為立即數(shù) 2022-3-625邏輯操作類命令邏輯操作類命令5-4 A5-4 A操作指令操作指令CPL A ACPL A A內(nèi)容取反,單字節(jié)內(nèi)容取反,單字節(jié)CLR A ACLR A A內(nèi)容清內(nèi)容清0 0,單字節(jié),單字節(jié)RL A A RL A A 內(nèi)容循環(huán)左移,單字節(jié)內(nèi)容循環(huán)左移,單字節(jié)RR A ARR A A內(nèi)容循環(huán)內(nèi)容循環(huán)右右移,單字節(jié)移,單字節(jié)RLC A RLC A 帶進位循環(huán)帶進位循環(huán) 左移左移 單字節(jié),單字節(jié), C C進低位,高位進進低

28、位,高位進C CRRC A RRC A 帶進位循環(huán)帶進位循環(huán) 右移右移 單字節(jié),單字節(jié), C C進高位,低位進進高位,低位進C C 2022-3-6266 6 程序轉(zhuǎn)移類指令程序轉(zhuǎn)移類指令共共1717條條NOP NOP 空操作,只延時,空操作,只延時,1 1個機器周期個機器周期其余均為其余均為2 2個機器周期個機器周期6-1 6-1 無條件轉(zhuǎn)移無條件轉(zhuǎn)移(1 1)AJMP addr11 AJMP addr11 (PCPC) (PCPC)+2 +2 雙字節(jié)指令雙字節(jié)指令 (PCPC10100 0) addr 11addr 11l轉(zhuǎn)移發(fā)生在轉(zhuǎn)移發(fā)生在PCPC當前值(當前值(PC+2PC+2后)所在

29、的后)所在的2K2K范圍內(nèi)。范圍內(nèi)。l同樣的指令,由同樣的指令,由PCPC當前值不同,程序入口會不一樣當前值不同,程序入口會不一樣l在在2K2K內(nèi)轉(zhuǎn)移內(nèi)轉(zhuǎn)移例:例: AJMP 1111 1111 1111 BAJMP 1111 1111 1111 B若上面指令在若上面指令在07FD07FD單元,則單元,則+2+2后為后為07FFH,07FFH,執(zhí)行后入口為執(zhí)行后入口為07FFH,07FFH,轉(zhuǎn)移轉(zhuǎn)移失敗失敗若上面指令在若上面指令在07FE07FE單元,則單元,則+2+2后為后為0800H,0800H,入口變?yōu)槿肟谧優(yōu)?FFFH0FFFH單元單元, ,轉(zhuǎn)移轉(zhuǎn)移成功成功2022-3-6276 6

30、程序轉(zhuǎn)移類指令程序轉(zhuǎn)移類指令6-1 6-1 無條件轉(zhuǎn)移無條件轉(zhuǎn)移(2 2)LJMP addr 16 LJMP addr 16 三字節(jié),第三字節(jié),第2 2字節(jié)為高字節(jié)為高8 8位,第位,第3 3字節(jié)為低字節(jié)為低8 8位位 (PCPC) (PCPC)+3+3 (PCPC) addr 16addr 16 在范圍在范圍64K64K內(nèi)轉(zhuǎn)移內(nèi)轉(zhuǎn)移(3 3)SJMP rel SJMP rel 相對轉(zhuǎn)移,相對轉(zhuǎn)移,-128-128127127范圍內(nèi)范圍內(nèi) (PCPC) (PCPC)+2 +2 雙字節(jié)雙字節(jié) (PCPC) (PCPC)+ +相對地址相對地址 在在1 1頁內(nèi)轉(zhuǎn)移,匯編編程時,頁內(nèi)轉(zhuǎn)移,匯編編程時,

31、relrel為地址標號為地址標號(4 4)JMP A+DPTR JMP A+DPTR 單字節(jié)單字節(jié) (PCPC) (A A)+ +(DPTRDPTR) 在在64K64K范圍內(nèi)轉(zhuǎn)移范圍內(nèi)轉(zhuǎn)移2022-3-6286 6 程序轉(zhuǎn)移類指令程序轉(zhuǎn)移類指令6-2 6-2 條件轉(zhuǎn)移指令條件轉(zhuǎn)移指令(1 1)JZ rel JZ rel 雙字節(jié)指令,在雙字節(jié)指令,在1 1頁內(nèi)(頁內(nèi)(256256)轉(zhuǎn)移,)轉(zhuǎn)移,relrel為相對地為相對地址,址,A A累加器為累加器為0則轉(zhuǎn)則轉(zhuǎn)(2 2)JNZ rel JNZ rel 同上,同上,A A不為不為0 0則轉(zhuǎn),雙字節(jié)指令則轉(zhuǎn),雙字節(jié)指令(3 3)CJNE ACJNE

32、 A,directdirect,relrel 三字節(jié),第三字節(jié),第2 2為直接地址,第為直接地址,第3 3字節(jié)為相對地址字節(jié)為相對地址 A A與與directdirect內(nèi)容不等則轉(zhuǎn)內(nèi)容不等則轉(zhuǎn)(4 4)CJNE ACJNE A,#data, rel#data, rel三字節(jié),三字節(jié),A A與與#data#data不等則轉(zhuǎn)不等則轉(zhuǎn)(5 5)CJNE RCJNE Ri i,#data#data,relrel R Ri i(i=0i=07 7)與)與#data#data不等則轉(zhuǎn),三個字節(jié)不等則轉(zhuǎn),三個字節(jié)(6 6)CJNE RCJNE Rj j,#data#data,rel rel 三個字節(jié),片內(nèi)

33、三個字節(jié),片內(nèi)RAMRAM內(nèi)容同內(nèi)容同#data#data比比較較(7 7)DJNZ RDJNZ Ri i, rel , rel 雙字節(jié)雙字節(jié)R Ri i(i=0=07 7),內(nèi)容先減),內(nèi)容先減1 1,再判斷,不為,再判斷,不為0 0則轉(zhuǎn)則轉(zhuǎn)(8 8)DJNZ directDJNZ direct,rel rel 三字節(jié)三字節(jié) (directdirect)-1 -1 不為不為0 0則轉(zhuǎn)則轉(zhuǎn) 2022-3-6296 6 程序轉(zhuǎn)移類指令程序轉(zhuǎn)移類指令6-2 6-2 條件轉(zhuǎn)移指令條件轉(zhuǎn)移指令例:例: MOV RMOV R0 0,#0AH#0AH LP LP:CPL PCPL P1 1。0 0 ;1個

34、周期個周期 DJNZ RDJNZ R0 0,LP LP ;2 2個周期個周期 DONEDONE: 每每3 3個器周期個器周期P P1 1。0 0反向一次,同時反向一次,同時R R0 0減減1 1,故結(jié)果為,故結(jié)果為假定假定P P1 1。0 0原為原為0 30 3個機器周期個機器周期出現(xiàn)出現(xiàn)5 5個周期方波個周期方波 2022-3-6306 6 程序轉(zhuǎn)移類指令程序轉(zhuǎn)移類指令 (PCPC) (PCPC)+2+26-36-3調(diào)子程序調(diào)子程序 (SPSP) (SPSP)+1+1(1 1) ACALL addr11 ACALL addr11 (SPSP) (PCPC7 70 0)雙字節(jié)指令雙字節(jié)指令 (

35、SPSP) (SPSP)+1+1用在當前用在當前PCPC任何在的任何在的2K2K范圍內(nèi)范圍內(nèi) (SPSP) (PCPC15158 8) (PCPC10100 0) addr11addr11(2 2)LCALL addr16 LCALL addr16 三字節(jié)指令三字節(jié)指令 執(zhí)行同前面類似,只是執(zhí)行同前面類似,只是PCPC要加要加3 3,而更新,而更新PCPC是是addr 16addr 16,在在64K64K范圍內(nèi)調(diào)用子程序范圍內(nèi)調(diào)用子程序(3 3)RET RET 單字節(jié)單字節(jié) (PCPC) (PCPC)+1+1 (PCPC15158 8) (SPSP) (SPSP) (SPSP)-1-1 (PC

36、PC7 70 0) (SPSP) (SPSP) (SPSP)-1-1l在執(zhí)行時在執(zhí)行時PCPC仍要仍要+1+1,只不過由于要全部更新,故不強調(diào),只不過由于要全部更新,故不強調(diào)lPCPC保留是先低后高字節(jié),恢復是先高后低字節(jié)。保留是先低后高字節(jié),恢復是先高后低字節(jié)。(4)RETI RETI 中斷返回指令,功能與中斷返回指令,功能與RETRET同同 只是先要恢復優(yōu)先級觸發(fā)器為只是先要恢復優(yōu)先級觸發(fā)器為0 0 2022-3-6317 7 位操作指令位操作指令MCS-51MCS-51單片機有位處理功能,適合于位處理、邏輯控制任務。單片機有位處理功能,適合于位處理、邏輯控制任務。位的表示方式:位地址位的

37、表示方式:位地址 比如比如PSWPSW的最低位的最低位P P,可用,可用D D0表示表示點方式點方式 PSW.0PSW.0位名稱表示位名稱表示 P P標號表示少用(后面講,標號標號表示少用(后面講,標號bit bit 位)位)7-1 7-1 位傳送位傳送 1 1 個機器周期個機器周期 bitbit代表尋址位代表尋址位(1 1)MOV C,bit MOV C,bit (例(例 MOV C P0MOV C P0 ,P0P0的低位進標志位的低位進標志位C C)(2 2)MOV bit,CMOV bit,C 例如例如 MOV 00HMOV 00H,C C 指指C C進入進入RAM20HRAM20H單元

38、的低位單元的低位2022-3-6327 7 位操作指令位操作指令7-2 7-2 位邏輯操作位邏輯操作(1 1)CPL C CPL C 單字節(jié)單周期單字節(jié)單周期(2 2)CLR C CLR C 單字節(jié)單周期單字節(jié)單周期(3 3)SETB C SETB C 單字節(jié)單周期單字節(jié)單周期(4 4)CPL bit CPL bit 雙字節(jié)雙字節(jié) 單周期,第二字節(jié)為位地址單周期,第二字節(jié)為位地址(5)CLR bit CLR bit 雙字節(jié)雙字節(jié) 單周期,第二字節(jié)為位地址單周期,第二字節(jié)為位地址(6)SETB bitSETB bit雙字節(jié)雙字節(jié) 單周期,第二字節(jié)為位地址單周期,第二字節(jié)為位地址(7)ANL C,

39、 bitANL C, bit雙字節(jié)雙字節(jié) 單周期,第二字節(jié)為位地址單周期,第二字節(jié)為位地址(8)ORL CORL C,bitbit雙字節(jié)雙字節(jié) 單周期,第二字節(jié)為位地址單周期,第二字節(jié)為位地址(9)ANL C, /bit ANL C, /bit 雙字節(jié)雙字節(jié) 單周期,單周期,/bit/bit代表先取反代表先取反 (1010)ORL C, /bit ORL C, /bit 雙字節(jié)雙字節(jié) 單周期,再操作單周期,再操作2022-3-6337 7 位操作指令位操作指令7-3 7-3 位條件轉(zhuǎn)移指令(二周期)位條件轉(zhuǎn)移指令(二周期)(1 1)JC rel JC rel 雙字節(jié),第二字節(jié)為相對地址(在雙字節(jié),第二字節(jié)為相對地址(在1 1頁內(nèi)轉(zhuǎn))頁內(nèi)轉(zhuǎn))(2 2)JNC rel JNC rel 雙字節(jié),第二字節(jié)為相對地址(在雙字節(jié),第二字節(jié)為相對地址(在1 1頁內(nèi)轉(zhuǎn))頁內(nèi)轉(zhuǎn))(3 3)JB bit, rel JB bit, rel 三字節(jié),第三字節(jié),第2 2為位地址,第為位地址,第3 3字節(jié)為相對地址字節(jié)為相對地址(4 4)JNB bitJNB bit,rel rel 三字節(jié),不為三字節(jié),不為1 1轉(zhuǎn)轉(zhuǎn)(5 5)JBC bitJBC bit,rel rel 三字節(jié),同上三字節(jié),同上 位為位為1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論