




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、2022-3-71第第3章章MCS-51MCS-51指令系統(tǒng)指令系統(tǒng) 1 1 匯編語言與指令系統(tǒng)匯編語言與指令系統(tǒng) 2 2 尋址方式尋址方式 3 3 數(shù)據(jù)傳送類指令數(shù)據(jù)傳送類指令 4 4 算術(shù)操作指令算術(shù)操作指令 5 5 邏輯操作類命令邏輯操作類命令 6 6 程序轉(zhuǎn)換類指令程序轉(zhuǎn)換類指令 7 7 位操作指令位操作指令 8 8 匯程序格式及偽指令匯程序格式及偽指令 9應(yīng)用舉例應(yīng)用舉例 2022-3-721 1 匯編語言與指令系統(tǒng)匯編語言與指令系統(tǒng)機(jī)器語言(二進(jìn)制代碼)機(jī)器語言(二進(jìn)制代碼)效率高,程序短,執(zhí)行速度快,效率高,程序短,執(zhí)行速度快,可讀性差,通用性差可讀性差,通用性差匯編語言(指令助
2、記符)匯編語言(指令助記符)解釋解釋編譯編譯高級(jí)語言高級(jí)語言效率低,程序龐大,效率低,程序龐大,可讀性好,可移植性好可讀性好,可移植性好MCS51指令系統(tǒng)指令系統(tǒng)l l111條指令,分為數(shù)據(jù)傳送,算術(shù)操作,邏輯操作,程序轉(zhuǎn)移,條指令,分為數(shù)據(jù)傳送,算術(shù)操作,邏輯操作,程序轉(zhuǎn)移,位操作位操作5類。類。l l單字節(jié)單字節(jié)49條條,雙字節(jié)雙字節(jié)46條條,三字節(jié)三字節(jié)16條條l l單周期單周期64條條,1s(12MHz時(shí))時(shí));雙周期雙周期45條條,2s;四周期四周期2條條4s2022-3-732尋址方式尋址方式名稱名稱 形式形式說明說明單單片片機(jī)機(jī)中中的的數(shù)數(shù)立即立即數(shù)數(shù)#0f0h8位立即數(shù)位立即數(shù)
3、#1234h16位立即數(shù)位立即數(shù)寄存寄存器器R1R8本質(zhì)上是訪問的本質(zhì)上是訪問的內(nèi)部內(nèi)部RAMA B DPTR特殊功能寄存器特殊功能寄存器(內(nèi)部內(nèi)部)存存儲(chǔ)儲(chǔ)器器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用于訪問程序存儲(chǔ)器用于訪問程序存儲(chǔ)器(內(nèi)或外都用內(nèi)或外都用MOVC)2022-3-742尋址方
4、式尋址方式指令分為操作碼,操作數(shù),許多指令都有操作數(shù)指令分為操作碼,操作數(shù),許多指令都有操作數(shù)從操作數(shù)所在地址尋找到與本指令有關(guān)的操作數(shù),就是尋址從操作數(shù)所在地址尋找到與本指令有關(guān)的操作數(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 AM
5、OV A,RRj j j=0 j=0、1 1 MOVX AMOVX A,RRj j MOVX AMOVX A,DPTR DPTR 等等2022-3-752尋址方式尋址方式(4)直接尋址)直接尋址MOVA,30HACALLaddr11AJMPaddr11LCALLaddr16LJMPaddr16直接位尋址直接位尋址SETB80H等等(5)基礎(chǔ)寄存器加變址寄存器間接尋址)基礎(chǔ)寄存器加變址寄存器間接尋址MOVCA, A+DPTRMOVCA, A+PC(6)相對(duì)尋址相對(duì)尋址操作數(shù)中有操作數(shù)中有rel標(biāo)記:標(biāo)記:rel為有符號(hào)數(shù)為有符號(hào)數(shù)-128127注意操作數(shù)的算法,注意操作數(shù)的算法,應(yīng)為:應(yīng)為: 目
6、的地址目的地址- -(當(dāng)前指令地址(當(dāng)前指令地址+該指令字節(jié)數(shù))該指令字節(jié)數(shù))2022-3-763數(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注意:對(duì)于注意:對(duì)于51,它
7、訪問所有,它訪問所有RAM(128字節(jié))及有定義的字節(jié))及有定義的SFR共共21字節(jié)字節(jié) 對(duì)于對(duì)于52,它只訪問,它只訪問128字節(jié)字節(jié)RAM(其余(其余RAM由由(2)方式)方式 訪問)及有定義的訪問)及有定義的SFR(26字節(jié))。字節(jié))。2022-3-773數(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單元(單
8、元(0FF)內(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-783數(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)
9、RAM雙字節(jié)指令,第雙字節(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-793數(shù)據(jù)傳送類指令數(shù)據(jù)傳送類指令3-4訪問片外訪問片外RAM(三周期)(三周期)訪問片外訪問片外RAM,用,用MOVX指針指針(1)MOVXA, Rj訪問片外訪問片外0FF單元,單
10、元,8位編址,單字節(jié)位編址,單字節(jié)指令指令MOVX Rj,A(2)MOVXA, DPTR訪問片外訪問片外0000FFFF單元,單元,16位編位編址,單字節(jié)指令址,單字節(jié)指令MOVX DPTR,A2022-3-7103數(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、令注意:若當(dāng)前單字節(jié)為注意:若當(dāng)前單字節(jié)為2000地址,則地址,則PC值為值為2001,因?yàn)閳?zhí)行此指,因?yàn)閳?zhí)行此指令時(shí),令時(shí),PC已已+12022-3-7113數(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-712
12、3數(shù)據(jù)傳送類指令數(shù)據(jù)傳送類指令3-7進(jìn)棧出棧(進(jìn)棧出棧(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-7134算術(shù)操作類指令算術(shù)操作類指令I(lǐng)NCDPTR為周期為周期MULAB為周期為周期DLVAB其余為單周期其余為單周期4-1加法指令加法指令(1)ADDA,Ri單字節(jié)指令單字節(jié)指令A(yù)DDCA,Ri進(jìn)位位進(jìn)入最低位進(jìn)位位進(jìn)入最低位(2)ADDA,Rj單字節(jié)指令單字節(jié)指
13、令A(yù)DDCA,Rj訪問片內(nèi)訪問片內(nèi)RAM(0FF)(3)ADDA,direct直接尋址字節(jié)與累加器相加,直接尋址字節(jié)與累加器相加,ADDCA,direct雙字節(jié)指令,第雙字節(jié)指令,第2字節(jié)為直接尋址字節(jié)為直接尋址(4)ADDA,#data立即數(shù)與累加數(shù)相加立即數(shù)與累加數(shù)相加ADDCA,#data雙字節(jié)指令,第雙字節(jié)指令,第2字節(jié)為立即數(shù)字節(jié)為立即數(shù)2022-3-7144算術(shù)操作類指令算術(shù)操作類指令4-1加法指令加法指令說明:說明: * *加法運(yùn)算時(shí),加法運(yùn)算時(shí),PSWPSW的影響的影響 相加后整個(gè)字節(jié)有溢出相加后整個(gè)字節(jié)有溢出 C C置位,否則置位,否則C C為為0 0 低半字節(jié)有溢出低半字節(jié)
14、有溢出 ACAC置位,否則置位,否則ACAC為為0 0 最高位與次高位有一個(gè)進(jìn)位,最高位與次高位有一個(gè)進(jìn)位,OVOV置位,否則置位,否則OVOV為為0 0 * *加法有帶符號(hào)數(shù)相加與不帶符號(hào)數(shù)相加之分,但機(jī)器本身是做統(tǒng)加法有帶符號(hào)數(shù)相加與不帶符號(hào)數(shù)相加之分,但機(jī)器本身是做統(tǒng)一處理,并不認(rèn)識(shí)有無符號(hào),也不接受負(fù)數(shù)輸入(要用補(bǔ)碼表示),一處理,并不認(rèn)識(shí)有無符號(hào),也不接受負(fù)數(shù)輸入(要用補(bǔ)碼表示),運(yùn)算結(jié)果要由人為判定。運(yùn)算結(jié)果要由人為判定。 * * OV OV為為1 1表示超出一個(gè)字節(jié)對(duì)有符號(hào)數(shù)的表示范圍,表示超出一個(gè)字節(jié)對(duì)有符號(hào)數(shù)的表示范圍,-128-1281271272022-3-7154算術(shù)操
15、作類指令算術(shù)操作類指令4-2 4-2 減法指令減法指令 均涉及進(jìn)位位均涉及進(jìn)位位(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,#data #data 雙字節(jié),第二字節(jié)為雙字節(jié),第二字節(jié)為data data 2022-3-7164算術(shù)操作類指令算術(shù)操作類指令4-2 4-2 減法指令減法指
16、令說明:說明:* * 減法運(yùn)算影響減法運(yùn)算影響PSWPSW 不夠減(最高位有借位)不夠減(最高位有借位) C=1C=1 低半字節(jié)不夠減低半字節(jié)不夠減AC=1C=1 最高位與次高位不同時(shí)借位(有一個(gè))最高位與次高位不同時(shí)借位(有一個(gè)) OV=1 OV=1 否則為否則為0 0C OV C OV (+ +)- -(+ +) (+ +)- -(- -) (- -)- -(+ +) (- -)- -(- -)0 0 127-1=126 -1-1=-2 -1-(-128)=1270 0 127-1=126 -1-1=-2 -1-(-128)=1270 1 0 1 -128-127=1-128-127=11
17、 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-7174算術(shù)操作類指令算術(shù)操作類指令4-2 4-2 減法指令減法指令例:例:80H-81H80H-81H 128-129 -1 128-129 -1 正確(有符號(hào)數(shù))正確(有符號(hào)數(shù))1000 0000 128-1000 0000 128-(-127-127) 255 255 正確,無符號(hào)數(shù)正確,無符號(hào)數(shù)1000 0001 C=1 OV=0 -128-129 -2
18、57 1000 0001 C=1 OV=0 -128-129 -257 出錯(cuò)出錯(cuò)1111 1111 -128-1111 1111 -128-(-127-127) -1 -1 正確,有符號(hào)數(shù)正確,有符號(hào)數(shù)注:無論加法運(yùn)算,還是減法運(yùn)算,均掌握規(guī)律。注:無論加法運(yùn)算,還是減法運(yùn)算,均掌握規(guī)律。l只要給定兩數(shù)只要給定兩數(shù)0000FFHFFH,運(yùn)算后其結(jié)果是定的,對(duì)運(yùn)算后其結(jié)果是定的,對(duì)PSWPSW相關(guān)位(相關(guān)位(C C、OVOV、ACAC等)的影響也是定的。等)的影響也是定的。l得到的結(jié)果是否正是用戶所需的,要看操作數(shù)的其正意義,(比得到的結(jié)果是否正是用戶所需的,要看操作數(shù)的其正意義,(比如如FFH
19、FFH可能代表可能代表-1-1,也可能代表,也可能代表255255),該結(jié)果可能有效,也可能無),該結(jié)果可能有效,也可能無效,可能當(dāng)成有符號(hào)數(shù),也可能當(dāng)成無符號(hào)數(shù)。效,可能當(dāng)成有符號(hào)數(shù),也可能當(dāng)成無符號(hào)數(shù)。l用戶按照你輸入的操作數(shù)的具體意圖及用戶按照你輸入的操作數(shù)的具體意圖及PSWPSW的相關(guān)位來判斷結(jié)果的的相關(guān)位來判斷結(jié)果的正確性。正確性。 2022-3-7184算術(shù)操作類指令算術(shù)操作類指令4-34-3加加1指令指令 (不影響標(biāo)志位)(不影響標(biāo)志位)(1 1)INC A INC A 單字節(jié)單字節(jié)(2 2)INC RINC Ri i 單字節(jié)單字節(jié)(3 3)INC RINC Rj j 單字節(jié)單字
20、節(jié)(4 4)INC direct INC direct 雙字節(jié),第二字節(jié)為直接地址雙字節(jié),第二字節(jié)為直接地址(5 5)INC DPTR INC DPTR 單字節(jié)單字節(jié) 。 2022-3-7194算術(shù)操作類指令算術(shù)操作類指令4-44-4減減1指令指令 (不影響標(biāo)志位)(不影響標(biāo)志位)(1 1)DEC ADEC A(2 2)DEC RDEC R i i(3 3)DEC RDEC Rj j(4 4)DEC direct DEC direct 2022-3-7204算術(shù)操作類指令算術(shù)操作類指令4-5 4-5 其它算術(shù)操作指令其它算術(shù)操作指令(1 1)DA A DA A 單字節(jié),累加器內(nèi)容十進(jìn)制調(diào)整單字
21、節(jié),累加器內(nèi)容十進(jìn)制調(diào)整 機(jī)器操作是按機(jī)器操作是按2 2進(jìn)制,如要作進(jìn)制,如要作BCDBCD碼運(yùn)算,則需調(diào)整,例:碼運(yùn)算,則需調(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 0111 非法非法 AC=1AC=1lA A為為1或低四位非法,低或低四位非法,低4位位l為或高四位非法,高位為或高四位非法,高位l不會(huì)同時(shí)出現(xiàn)二者不會(huì)同時(shí)
22、出現(xiàn)二者l調(diào)整過程運(yùn)算結(jié)果,只影響,不影響、調(diào)整過程運(yùn)算結(jié)果,只影響,不影響、 2022-3-7214算術(shù)操作類指令算術(shù)操作類指令4-5 4-5 其它算術(shù)操作指令其它算術(shù)操作指令()()()()結(jié)高位低位()()結(jié)高位低位單字節(jié)周期指令單字節(jié)周期指令不影響不影響影響標(biāo)志位:影響標(biāo)志位:;若積大于若積大于,則為,否則為則為,否則為若為,可只取中結(jié)果若為,可只取中結(jié)果()()()()商余數(shù)()()商余數(shù)影響標(biāo)志位:,除數(shù)為時(shí),為,否則為。影響標(biāo)志位:,除數(shù)為時(shí),為,否則為。 2022-3-722邏輯操作類命令邏輯操作類命令共條共條direct direct datadatadirect direc
23、t datadata為兩個(gè)機(jī)器周期為兩個(gè)機(jī)器周期direct direct datadata5-1 5-1 與指令與指令:用于修改某些單元的內(nèi)容,用讀修改寫的方式用于修改某些單元的內(nèi)容,用讀修改寫的方式控制位為時(shí),使相關(guān)位清,這則保持不變。控制位為時(shí),使相關(guān)位清,這則保持不變。共條共條ANLANL,i i 單單 ANL AANL A, #0FEH#0FEHANLANL, j j 單單ANL PSWANL PSW, #1110 0111B#1110 0111BANL AANL A,direct direct 雙雙ANL directANL direct,A A 雙雙 無法修改無法修改5252的高
24、的高128128字節(jié)字節(jié)RAMRAMANL AANL A, #data #data 雙雙ANL directANL direct,#data #data 三三 2022-3-723邏輯操作類命令邏輯操作類命令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 雙雙ORL directORL direct,A A 雙雙ORL AORL A,#data #data 雙雙ORL directORL direct,#data
25、 #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 B A前三位為前三位為1 1,后,后5 5位不變位不變ANL PANL P1 1,A PA P1 1前三位不變,后前三位不變,后5 5位中根據(jù)位中根據(jù)A
26、A,把該置,把該置0 0的清的清0 0 2022-3-724邏輯操作類命令邏輯操作類命令5-3 5-3 異或指令異或指令 控制位為控制位為1 1,使原相應(yīng)位改變,使原相應(yīng)位改變 控制位為控制位為0 0,使相應(yīng)位不變,使相應(yīng)位不變XRL AXRL A, R Ri i 單單XRL AXRL A, RRj j 單單XRL AXRL A,direct direct 雙雙XRL directXRL direct,A A 雙雙XRL AXRL A,#data #data 雙雙XRL directXRL direct,#data #data 三三 第第2 2為直接地址,第為直接地址,第3 3字節(jié)為立即數(shù)字節(jié)
27、為立即數(shù) 2022-3-725邏輯操作類命令邏輯操作類命令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 帶進(jìn)位循環(huán)帶進(jìn)位循環(huán) 左移左移 單字節(jié),單字節(jié), C C進(jìn)低位,高位進(jìn)進(jìn)低位,高位進(jìn)C CRRC A RRC A 帶進(jìn)位循環(huán)帶進(jìn)位循環(huán) 右移右移 單字節(jié),單字節(jié), C C進(jìn)高位,低位進(jìn)進(jìn)高位,低位進(jìn)C C 2022-3-7266
28、 6 程序轉(zhuǎn)移類指令程序轉(zhuǎn)移類指令共共1717條條NOP NOP 空操作,只延時(shí),空操作,只延時(shí),1 1個(gè)機(jī)器周期個(gè)機(jī)器周期其余均為其余均為2 2個(gè)機(jī)器周期個(gè)機(jī)器周期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當(dāng)前值(當(dāng)前值(PC+2PC+2后)所在的后)所在的2K2K范圍內(nèi)。范圍內(nèi)。l同樣的指令,由同樣的指令,由PCPC當(dāng)前值不同,程序入口會(huì)不一樣當(dāng)前值不同,程序入口會(huì)不一樣l在在2K2K內(nèi)轉(zhuǎn)移內(nèi)轉(zhuǎn)
29、移例:例: 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-7276 6 程序轉(zhuǎn)移類指令程序轉(zhuǎn)移類指令6-1 6-1 無條件轉(zhuǎn)移無條件轉(zhuǎn)移(2 2)LJMP addr 16 LJMP addr 16 三字節(jié),第三字節(jié),第2 2字
30、節(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 相對(duì)轉(zhuǎn)移,相對(duì)轉(zhuǎn)移,-128-128127127范圍內(nèi)范圍內(nèi) (PCPC) (PCPC)+2 +2 雙字節(jié)雙字節(jié) (PCPC) (PCPC)+ +相對(duì)地址相對(duì)地址 在在1 1頁內(nèi)轉(zhuǎn)移,匯編編程時(shí),頁內(nèi)轉(zhuǎn)移,匯編編程時(shí),relrel為地址標(biāo)號(hào)為地址標(biāo)號(hào)(4 4)JMP A+DPTR JMP A+DPTR 單字節(jié)單字節(jié) (PCPC) (A A)+ +(DPTRDPTR) 在
31、在64K64K范圍內(nèi)轉(zhuǎn)移范圍內(nèi)轉(zhuǎn)移2022-3-7286 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為相對(duì)地為相對(duì)地址,址,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 A,directdirect,relrel 三字節(jié),第三字節(jié),第2 2為直接地址,第為直接地址,第3 3字節(jié)為相對(duì)地址字節(jié)為相對(duì)地址 A A與與dire
32、ctdirect內(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),三個(gè)字節(jié)不等則轉(zhuǎn),三個(gè)字節(jié)(6 6)CJNE RCJNE Rj j,#data#data,rel rel 三個(gè)字節(jié),片內(nèi)三個(gè)字節(jié),片內(nèi)RAMRAM內(nèi)容同內(nèi)容同#data#data比比較較(7 7)DJNZ RDJNZ Ri i, rel , rel 雙字節(jié)雙字節(jié)R Ri i
33、(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-7296 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個(gè)周期個(gè)周期 DJNZ RDJNZ R0 0,LP LP ;2 2個(gè)周期個(gè)周期 DONEDONE: 每每3 3個(gè)器周期個(gè)器周期P P1 1。0 0反向一次,
34、同時(shí)反向一次,同時(shí)R R0 0減減1 1,故結(jié)果為,故結(jié)果為假定假定P P1 1。0 0原為原為0 30 3個(gè)機(jī)器周期個(gè)機(jī)器周期出現(xiàn)出現(xiàn)5 5個(gè)周期方波個(gè)周期方波 2022-3-7306 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é)指令 (SPSP) (SPSP)+1+1用在當(dāng)前用在當(dāng)前PCPC任何在的任何在的2K2K范圍內(nèi)范圍內(nèi) (SPSP) (PCPC15158 8) (PCPC1010
35、0 0) addr11addr11(2 2)LCALL addr16 LCALL addr16 三字節(jié)指令三字節(jié)指令 執(zhí)行同前面類似,只是執(zhí)行同前面類似,只是PCPC要加要加3 3,而更新,而更新PCPC是是addr16addr16,在在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 (PCPC7 70 0) (SPSP) (SPSP) (SPSP)-1-1l在執(zhí)行時(shí)在執(zhí)行時(shí)PCPC仍要仍要+1+1,只不過由于要全部更新,故不強(qiáng)調(diào),只不過由于要全
36、部更新,故不強(qiáng)調(diào)lPCPC保留是先低后高字節(jié),恢復(fù)是先高后低字節(jié)。保留是先低后高字節(jié),恢復(fù)是先高后低字節(jié)。(4)RETI RETI 中斷返回指令,功能與中斷返回指令,功能與RETRET同同 只是先要恢復(fù)優(yōu)先級(jí)觸發(fā)器為只是先要恢復(fù)優(yōu)先級(jí)觸發(fā)器為0 0 2022-3-7317 7 位操作指令位操作指令MCS-51MCS-51單片機(jī)有位處理功能,適合于位處理、邏輯控制任務(wù)。單片機(jī)有位處理功能,適合于位處理、邏輯控制任務(wù)。位的表示方式:位地址位的表示方式:位地址 比如比如PSWPSW的最低位的最低位P P,可用,可用D D0表示表示點(diǎn)方式點(diǎn)方式 PSW.0PSW.0位名稱表示位名稱表示 P P標(biāo)號(hào)表示
37、(后面講,標(biāo)號(hào)標(biāo)號(hào)表示(后面講,標(biāo)號(hào)bit bit 位)位)7-1 7-1 位傳送位傳送 1 1 個(gè)機(jī)器周期個(gè)機(jī)器周期 bitbit代表尋址位代表尋址位(1 1)MOV C,bit MOV C,bit (例(例 MOV C,P0.0MOV C,P0.0 ;P0P0的低位進(jìn)標(biāo)志位的低位進(jìn)標(biāo)志位C C)(2 2)MOV bit,CMOV bit,C 例如例如 MOV 00HMOV 00H,C C 指指C C進(jìn)入進(jìn)入RAM20HRAM20H單元的低位單元的低位2022-3-7327 7 位操作指令位操作指令7-2 7-2 位邏輯操作位邏輯操作(1 1)CPL C CPL C 單字節(jié)單周期單字節(jié)單周期
38、(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, bitANL C, bit雙字節(jié)雙字節(jié) 單周期,第二字節(jié)為位地址單周期,第二字節(jié)為位地址(8)ORL CORL C,bitbit雙字節(jié)雙字節(jié) 單周期,第二字
39、節(jié)為位地址單周期,第二字節(jié)為位地址(9)ANL C, /bit ANL C, /bit 雙字節(jié)雙字節(jié) 單周期,單周期,/bit/bit代表先取反代表先取反 (1010)ORL C, /bit ORL C, /bit 雙字節(jié)雙字節(jié) 單周期,再操作單周期,再操作2022-3-7337 7 位操作指令位操作指令7-3 7-3 位條件轉(zhuǎn)移指令(二周期)位條件轉(zhuǎn)移指令(二周期)(1 1)JC rel JC rel 雙字節(jié),第二字節(jié)為相對(duì)地址(在雙字節(jié),第二字節(jié)為相對(duì)地址(在1 1頁內(nèi)轉(zhuǎn))頁內(nèi)轉(zhuǎn))(2 2)JNC rel JNC rel 雙字節(jié),第二字節(jié)為相對(duì)地址(在雙字節(jié),第二字節(jié)為相對(duì)地址(在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é)為相對(duì)地址字節(jié)為相對(duì)地址(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轉(zhuǎn),同時(shí)清除該位至轉(zhuǎn),同時(shí)清除該位至0 0 與與JB bitJB bit,rel rel
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 少先隊(duì)校外實(shí)踐基地計(jì)劃
- 小學(xué)一年級(jí)體育健康課程規(guī)劃計(jì)劃
- 醫(yī)院護(hù)理質(zhì)量控制中心工作計(jì)劃
- 法洛三聯(lián)癥的健康宣教
- 唇良性腫瘤的個(gè)案護(hù)理
- 殘疾人幫扶對(duì)口支援工作實(shí)施方案及計(jì)劃
- 2025年P(guān)EP人教版四年級(jí)英語學(xué)習(xí)興趣激發(fā)計(jì)劃
- 防震減災(zāi)科普興趣小組冬令營活動(dòng)計(jì)劃
- 幼兒園疫情期間大班健康管理計(jì)劃
- 消防設(shè)施維護(hù)與檢測服務(wù)合同書
- 基坑開挖專項(xiàng)施工方案
- 熱射病的診斷與治療
- 2023年安順市公共資源交易服務(wù)中心事業(yè)單位工作人員招聘筆試題庫及答案解析
- GB/T 9074.18-2017自攻螺釘和平墊圈組合件
- 變壓器培訓(xùn)資料
- 斷絕子女關(guān)系協(xié)議書模板(5篇)
- 村規(guī)民約范文大全三篇村規(guī)民約范文大全
- 赤水市轄區(qū)內(nèi)楓溪河(風(fēng)溪河)、寶沅河(寶源河)、丙安河
- 胸腔積液PPT.ppt 課件
- 斷指再植術(shù)后的切口
- 曾國藩為官之道
評(píng)論
0/150
提交評(píng)論