版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1單片機原理及應(yīng)用單片機原理及應(yīng)用1、指令的格式、指令的格式 。2、尋址方式、尋址方式。3、分類指令分類指令。3.1 概述概述3.2 尋址方式尋址方式3.3 MCS-51單片機指令系統(tǒng)單片機指令系統(tǒng)2 3.1 概概 述述3一、指令格式一、指令格式注意注意: :方括號是可選項。方括號是可選項。4 5二、二、指令的三種表達(dá)形式指令的三種表達(dá)形式6 71、單字節(jié)指令(、單字節(jié)指令(49條)條) 三、三、指令的字節(jié)數(shù)指令的字節(jié)數(shù)8 9 2、雙字節(jié)指令(、雙字節(jié)指令(46條)條)103、三字節(jié)指令(、三字節(jié)指令(16條)條) 111、指令分類、指令分類 四、指令的分類及符號說明四、指令的分類及符號說明1
2、21) Rn : 表示當(dāng)前選中的寄存器區(qū)的表示當(dāng)前選中的寄存器區(qū)的8個工作寄存器個工作寄存器(n=07)中的一個。)中的一個。2) Ri : 表示寄存器間接尋址,表示寄存器間接尋址,Ri只能是只能是R0或或R1。 3) #data : 8位立即數(shù),實際使用時位立即數(shù),實際使用時data應(yīng)是應(yīng)是 00H0FFH中的一個。中的一個。4) #data16 : 16位立即數(shù)。位立即數(shù)。2、符號的說明、符號的說明135) direct :表示表示8位內(nèi)部數(shù)據(jù)存儲器單位內(nèi)部數(shù)據(jù)存儲器單 元的地址。元的地址。6) addr16 : 表示表示16位的目的地址。位的目的地址。7) addr11 : 表示表示11
3、位的目的地址。位的目的地址。8) rel : 表示表示8位帶符號地址偏移量。位帶符號地址偏移量。9) DPTR :表示以:表示以DPTR為數(shù)據(jù)指針的間接為數(shù)據(jù)指針的間接尋址,用于對外部尋址,用于對外部64K RAM/ROM尋址。尋址。 1410) bit :表示內(nèi)部:表示內(nèi)部RAM(包括專用寄存器)中(包括專用寄存器)中 的直接尋址位。的直接尋址位。13) :為間址寄存器或基址寄存器的前:為間址寄存器或基址寄存器的前 綴。如綴。如Ri, A+PC,A+DPTR。14) / :位操作數(shù)的前綴,表示對該位操作:位操作數(shù)的前綴,表示對該位操作 數(shù)取反。如數(shù)取反。如/bit.15) $ :當(dāng)前指令的地
4、址。:當(dāng)前指令的地址。返返 回回15 3.2 尋址方式尋址方式16一、寄存器尋址一、寄存器尋址17R0(35H)A結(jié)果結(jié)果A=35HMOV A , R0 ; A R018二、立即尋址二、立即尋址19(1)20三、直接尋址三、直接尋址21功能:功能:MOV A,56H ;A (56H)34H片內(nèi)片內(nèi)RAM 34H累加器累加器A56H 圖圖3.1 3.1 指令傳遞指令傳遞 22四、寄存器間接尋址四、寄存器間接尋址23242526MOV A,R0 ;A R0MOV A,R0;A (R0)例 如 :例 如 : R 0 6 5 H , (65H)26H26H片內(nèi)片內(nèi)RAMA 65H 圖圖3.23.2 R
5、065H注意:是它區(qū)別寄存器尋址的標(biāo)志。注意:是它區(qū)別寄存器尋址的標(biāo)志。執(zhí)行執(zhí)行結(jié)果結(jié)果A65H,執(zhí)行執(zhí)行結(jié)果結(jié)果A26H。27五、相對尋址五、相對尋址28程序存儲器A圖3-3 指令過程 PC 26H0000H2000H2001H 80H 26H 2028H 02H 20H A L U2002H29六、變址尋址六、變址尋址30(1)MOVCA,APC ;A(APC)(2)MOVCA,ADPTR ;A(ADPTR) 31 已知已知:片外片外ROM的的2006H單元中有一數(shù)單元中有一數(shù)34H,編寫程序用變址尋址方法把這個數(shù)送入編寫程序用變址尋址方法把這個數(shù)送入A中,試進(jìn)中,試進(jìn)行分析。行分析。 解
6、:根據(jù)題目要求,基址可定為解:根據(jù)題目要求,基址可定為2000H,地址,地址偏移量則為偏移量則為06H,程序如下:,程序如下: MOVDPTR,2000H ;DPTR2000H MOVA,06H ;A06H MOVCA,ADPTR ;A34H32程序存儲器A 圖3.4 DPTR 00H0000H34H 2006HA L U 20 06H33七、位尋址七、位尋址 當(dāng)把八位二進(jìn)制數(shù)中某一位作為操作數(shù)當(dāng)把八位二進(jìn)制數(shù)中某一位作為操作數(shù)看待時,這個操作數(shù)的地址就稱為位地址,看待時,這個操作數(shù)的地址就稱為位地址,對位地址尋址簡稱對位地址尋址簡稱位尋址位尋址。34 MOV 30H,C ; 30H是位尋址位
7、地址是位尋址位地址 MOV A , 30H ; 30H是直接尋址的字節(jié)地址是直接尋址的字節(jié)地址 MOV C , ACC.7 ;CyACC.7 由上面指令可知,位尋址的位地址與直接由上面指令可知,位尋址的位地址與直接尋址的字節(jié)地址形式完全一樣,主要由尋址的字節(jié)地址形式完全一樣,主要由操作碼操作碼來區(qū)分。來區(qū)分。返返 回回35 這類指令的源操作數(shù)和目的操作數(shù)地址都這類指令的源操作數(shù)和目的操作數(shù)地址都在單片機內(nèi)部。在單片機內(nèi)部。 MOV dest , src3.3 MCS-51單片機指令系統(tǒng)單片機指令系統(tǒng)一、數(shù)據(jù)傳送指令一、數(shù)據(jù)傳送指令1、內(nèi)部數(shù)據(jù)傳送指令(、內(nèi)部數(shù)據(jù)傳送指令(15條)條)361)
8、以以A為目的操作數(shù)為目的操作數(shù)372) 以以Rn為目的操作數(shù)為目的操作數(shù)383) 以直接地址為目的操作數(shù)以直接地址為目的操作數(shù)394)以寄存器間接尋址為目的操作數(shù)以寄存器間接尋址為目的操作數(shù)40 已知:已知:R130H,試問執(zhí)行如下指令后,試問執(zhí)行如下指令后累加器累加器A、R7、30H、31H單元中內(nèi)容各是什么?單元中內(nèi)容各是什么? MOV A, #40H MOV R7, #50H MOV R1, #45H MOV 31H, #48H執(zhí)行后,結(jié)果為執(zhí)行后,結(jié)果為: A=40H, R7=50H, (30H)=45H, (31H)=48H41已知:已知:R0=20H、(21H)=54H、(22H)
9、=55H、(30H)=56H,試問執(zhí)行如下指令后,結(jié)果,試問執(zhí)行如下指令后,結(jié)果A、40H、R2、20H、和、和P2口中的內(nèi)容各是什么?口中的內(nèi)容各是什么?MOV A , 21H MOV 40H ,A MOV R2 , 22H MOV R0 , 21H MOV P2, 30H結(jié)果為:結(jié)果為:A=54H,(40H)=54H ,R2=55H ,(20H)=54H ,P2=56H42 已知:已知:(30H)=12H、(31H)=13H、R0=30H、R1=31H,試問執(zhí)行以下指令后,試問執(zhí)行以下指令后A、30H、31H和和32H各是什么?各是什么? MOV A , R0 MOV R1,A MOV R
10、0, #34H MOV 32H , R1執(zhí)行后,執(zhí)行后,A=12H ,(30H)=34H ,(31H)=12H ,(32H)=12H43圖圖 3.5 內(nèi)部指令描述內(nèi)部指令描述Direct直接尋址直接尋址Ri間址間址 Rn寄存器寄存器data立即數(shù)立即數(shù)累加器累加器A44MOVDPTR,data16 ;DPTRdata16 1) 十六位數(shù)據(jù)傳送指令十六位數(shù)據(jù)傳送指令2、外部數(shù)據(jù)傳送指令(、外部數(shù)據(jù)傳送指令(7條)條)45MOVCA,ADPTR;A(ADPTR)MOVCA,APC ;PCPC+1, ; A(APC)2)外部外部ROM的字節(jié)數(shù)指令的字節(jié)數(shù)指令 46例例3.5 已知片外已知片外2008
11、H單元中有一個數(shù)為單元中有一個數(shù)為34H,試,試用以上二條指令各寫一個程序,把數(shù)送到片內(nèi)用以上二條指令各寫一個程序,把數(shù)送到片內(nèi)7FH單元中。單元中。解:解:采用采用DPTR作為基址寄存器作為基址寄存器ORG 0000H LJMP STARTORG 0100HSTART:CLR A ;清空清空A MOV DPTR ,#2008H ;表起始值表起始值MOVC A,A+DPTR ;把把A與與DPTR相加,相加, ;結(jié)果結(jié)果A34HMOV 7FH,A ;結(jié)果結(jié)果(7FH)=34HSJMP $ ;停止停止47采用采用PC作為基址寄存器作為基址寄存器 ORG 0000H LJMP MAIN ORG 20
12、00HMAIN:MOV A,05H ;偏移量為偏移量為05H,因為該指令占因為該指令占 ;二個字節(jié)數(shù)二個字節(jié)數(shù) MOVC A,A+PC ;首先將首先將PC1,則則PC2003, ;然后加然后加05H,則,則PC指向指向2008單元單元 MOV 7FH ,A ;結(jié)果(結(jié)果(7FH)34H SJMP $ ;停止停止483) 外部外部RAM的字節(jié)傳送指令的字節(jié)傳送指令MOVX A ,Ri ;A(Ri)MOVX Ri ,A ;A(Ri)MOVX A ,DPTR ;A(DPTR)MOVX DPTR ,A ;A(DPTR)49 ORG 1000HMOV R1, #60H ;R1=60H MOVX A, R
13、1 ;A=30HMOV DPTR , #2000H ;DPTR=2000HMOVX DPTR,A ;2000H30HSJMP $ ;停止停止503、數(shù)據(jù)交換指令(、數(shù)據(jù)交換指令(5條)條)A7RndirectRi51 已知已知R0=20H,(,(20H)=75H,A=3FH (1) XCH A,R0 (2)XCHD A, R0 (3)SWAP A 例例3.7 結(jié)果:結(jié)果: A=75H, (20H)=3FH,R0=20H結(jié)果:結(jié)果:A=35H,(,(20H)=7FH, R0=20H結(jié)果:結(jié)果: A=0F3H52 已知已知:片內(nèi)片內(nèi)20H單元有一個數(shù)為單元有一個數(shù)為30H,片外,片外20H單元有一
14、個數(shù)為單元有一個數(shù)為03H,編程把二個數(shù)相互交換。,編程把二個數(shù)相互交換。解:解:ORG 0100HMOV R0 , #20H ; R020HMOVX A ,R0 ; A03HXCH A , R0 ; A30H ,(20H)03HMOVX R0 ,A ;30H(20H)(外部(外部RAM)SJMP $ ; 停止停止534、堆棧操作指令(、堆棧操作指令(2條)條)PUSHdirect ;SP SP+1,(SP) (direct)POP direct ;(SP) direct, SP SP-154MOV SP ,#70H;棧底首地址為棧底首地址為70HPUSH30H;SPSP1,71HXPUSH4
15、0H;SPSP1,72HYPOP 30H ;30HY,SPSP-1=71HPOP40H ;40HX,SPSP-1=70H 已知已知:(30H)=X,(40H)=Y,編程用堆棧指令,編程用堆棧指令把把30H和和40H單元中內(nèi)容相交換。單元中內(nèi)容相交換。551、加法指令(、加法指令(13條)條)ADD A, Rn ADD A, directADD A, RiADD A, #data二、算術(shù)運算指令(二、算術(shù)運算指令(24條)條)1) 不帶進(jìn)位位不帶進(jìn)位位(Cy)加法指令加法指令 (4條條)56 例例 3.1057A= 0 1 0 1 1 0 1 0 Bdata= 0 1 1 0 1 0 1 1 B
16、 90107+ ) 1 1 1 0 0 0 1 0 1 B 1CS1970CP 1AC58ADDC A , RnADDC A , #dataADDC A , directADDC A , Ri2)帶進(jìn)位位)帶進(jìn)位位(Cy)加法指令加法指令(4條條)59 已知:已知:A8FH、R120H、(、(20H)12H、(21H)0FEH和和Cy1,試問,試問CPU依次執(zhí)行以下依次執(zhí)行以下指令后累加器指令后累加器A和和Cy中的值是多少。中的值是多少。a.ADDC A ,R1 b.ADDC A ,21Hc.ADDC A,R1 d.ADDC A ,#7FH 60INCA;AA1INCRn;RnRn1INCdi
17、rect;(direct)(direct)1INCRi;(Ri)(Ri)1INCDPTR;DPTRDPTR13)加)加1指令(指令(5條)條)61解:由加解:由加1指令的規(guī)則,上述指令執(zhí)行后的的操作結(jié)果為:指令的規(guī)則,上述指令執(zhí)行后的的操作結(jié)果為:A35H、R043H、(、(43H)25H、DPTR3021H。622、減法指令、減法指令 ( 8條條)SUBB A, Rn; A A-Rn-CySUBB A, Ri; AA-(Ri)-CySUBB A, direct ; AA-(direct)-CySUBB A, #data; A A-data-Cy1)帶進(jìn)位位)帶進(jìn)位位(Cy)減法指令減法指令(
18、4條條)63000 0011CyACF0Rs1Rs0OV1P64DEC A ;AA-1DEC Rn ;RnRn-1 ;direct(direct)-1DEC Ri ;(Ri)(Ri)-12)減)減1指令(指令(4條)條)65 已知:已知:A10H、R13BH、R734H、(60H)00H、(、(3BH)0FFH,試分析,執(zhí),試分析,執(zhí)行如下程序后累加器行如下程序后累加器A和和PSW中各標(biāo)志位狀態(tài)?中各標(biāo)志位狀態(tài)? DEC A DEC R1 DEC 60H DEC R7 解:根據(jù)減解:根據(jù)減1指令功能,結(jié)果為:指令功能,結(jié)果為:A0FH, P=1 (3BH)0FEH,PSW不變不變(60H)0F
19、FH,PSW不變不變 R7=33H,PSW不變不變663、十進(jìn)制調(diào)整指令(、十進(jìn)制調(diào)整指令(1條)條)對對A中兩個壓縮中兩個壓縮BCD數(shù)相加之和調(diào)整為數(shù)相加之和調(diào)整為2位位BCD碼數(shù)。碼數(shù)。1)只能用在對)只能用在對BCD碼數(shù)進(jìn)行碼數(shù)進(jìn)行ADD或或ADDC操操 作后使用。作后使用。2)影響標(biāo)志位:有進(jìn)位時)影響標(biāo)志位:有進(jìn)位時 C1。1) BCD加法加法v特點特點:67 試編程實現(xiàn)試編程實現(xiàn)44H86H的的BCD加法程序,并對加法程序,并對其工作原理分析。其工作原理分析。 解:相應(yīng)解:相應(yīng)BCD加法程序為:加法程序為:MOV A ,44H ;A44HADD A ,86H ;A44860CAHD
20、A A ;A30H,Cy1,AC1SJMP $ 68A= 0 1 0 0 0 1 0 0 Bdata=1 0 0 0 0 1 1 0 B 4486+ )0 1 1 0 1 0 0 0 0 B 1 1 0 1 0 0 1 1 0 0 0 0 B 0 1 1 0 0 1 0 1 0 B 130 1 1 0 B 低低4位位9, 加加6調(diào)整調(diào)整高高4位位9,加加6調(diào)整調(diào)整69注意:對于注意:對于BCD減法減法 MCS51單片機中單片機中沒有十進(jìn)制減法調(diào)整沒有十進(jìn)制減法調(diào)整指令指令,因此,因此,BCD減法運算必須采用減法運算必須采用BCD補碼運算法則。補碼運算法則。 704、乘法和除法指令、乘法和除法指
21、令MULAB ;BA AB C0積積255 OV1DIVAB ;AB AB C=0除數(shù)除數(shù)0 OV1除數(shù)除數(shù)0 OV01)乘法指令)乘法指令2)除法指令)除法指令711、與指令、與指令A(yù)NL A , RnANL A , RiANL A , directANL A , #dataANL direct , AANL direct , #data; A A Rn; A A (Ri); A A (direct); A A #data; direct (direct) A; direct ( direct ) #data三、邏輯運算指令(三、邏輯運算指令(20條)條)72 結(jié)果:將結(jié)果:將P1口鎖存器的
22、口鎖存器的0、3、4、7位內(nèi)容屏蔽,而其余位保持原值不位內(nèi)容屏蔽,而其余位保持原值不變。變。例如例如常用常用ANL指令指令屏蔽屏蔽某些不用位或保留某些位某些不用位或保留某些位732、或指令、或指令ORL A , Rn;AARnORL A , direct;AA(direct)ORL A , Ri;AA(Ri)ORL A , #data;AAdataORL direct , A;direct(direct)AORL direct , #data ;direct(direct)data74 結(jié)果:將結(jié)果:將P1口鎖存器的口鎖存器的1、4、5位進(jìn)位進(jìn)行置位,而其余位保持原值不變。行置位,而其余位保持
23、原值不變。常用常用ORL指令對某些位指令對某些位置位置位或保留某些位或保留某些位例如例如ORL P1,#00110010B7576XRL A ,Rn ;AA RnXRL A ,direct;AA (direct)XRL A ,Ri ;AA (Ri)XRL A ,#data;AA dataXRL direct ,A;direct(direct) AXRL direct ,#data ;direct(direct) data3、異或指令、異或指令77 結(jié)果:結(jié)果: 將將P1口鎖存器的口鎖存器的0、4、5位內(nèi)容位內(nèi)容取反,而其余位保持原值不變。取反,而其余位保持原值不變。常用常用XRL指令對某些位指
24、令對某些位取反取反或保留某些位或保留某些位例如例如78CPL ACLR A; A A; A 04、累加器清零和取反指令、累加器清零和取反指令79RL A ;RR A ;ARLC A ;RRC A ;5、移位指令(、移位指令(4條)條)A7A0CyA7A0CyA7A0A7A0AAA80 解:一個解:一個16位二進(jìn)制數(shù)擴大到二倍就等于位二進(jìn)制數(shù)擴大到二倍就等于是把它進(jìn)行一次算術(shù)左移。由于是把它進(jìn)行一次算術(shù)左移。由于MCS51單元單元片機的移位指令都是二進(jìn)制片機的移位指令都是二進(jìn)制8位的移位指令,因位的移位指令,因此此16位數(shù)的移位指令必須用程序來實現(xiàn)。位數(shù)的移位指令必須用程序來實現(xiàn)。 算法為:算法
25、為: M M+1 081ORG0030HCLRC;清進(jìn)位標(biāo)志位清進(jìn)位標(biāo)志位MOVR0,M;操作數(shù)低操作數(shù)低8位地址送位地址送R0MOVA,R0;A操作數(shù)低操作數(shù)低8位位RLC A;低低8位操作數(shù)左移低位補位操作數(shù)左移低位補0MOVR0,A;結(jié)果送回結(jié)果送回M單元,單元,Cy中為最高位中為最高位INCR0;R0指向指向M1單元單元MOVA,R0;A操作數(shù)高操作數(shù)高8位位RLC A ;高高8位操作數(shù)左移并加上低位位操作數(shù)左移并加上低位CyMOV R0,A;結(jié)果送回結(jié)果送回M1單元單元SJMP $;停止停止82LJMPaddr16 ;PCaddr16AJMP addr11 ;PCPC+2,PC100
26、addr11SJMP rel ;PCPC+2,PCPC+relJMP A+DPTR ;PCA+DPTR四、控制轉(zhuǎn)移和位操作指令四、控制轉(zhuǎn)移和位操作指令1、控制轉(zhuǎn)移指令、控制轉(zhuǎn)移指令 (17條條)1 1)無條件轉(zhuǎn)移指令)無條件轉(zhuǎn)移指令83MCS-51系列單片機可以在系列單片機可以在64KB地地址范圍內(nèi)尋址,絕對轉(zhuǎn)移指令的轉(zhuǎn)址范圍內(nèi)尋址,絕對轉(zhuǎn)移指令的轉(zhuǎn)移范圍只在移范圍只在PC當(dāng)前值所指的當(dāng)前值所指的2KB地址范圍內(nèi)。地址范圍內(nèi)。84 長轉(zhuǎn)移指令長轉(zhuǎn)移指令LJMP addr16 ; PC addr16 三字節(jié)指令,不影響標(biāo)志位,可三字節(jié)指令,不影響標(biāo)志位,可在在64KB地址范圍內(nèi)無條件轉(zhuǎn)移。地址范
27、圍內(nèi)無條件轉(zhuǎn)移。85 絕對轉(zhuǎn)移指令絕對轉(zhuǎn)移指令二字節(jié)指令,可在二字節(jié)指令,可在2KB地址范圍內(nèi)轉(zhuǎn)移。地址范圍內(nèi)轉(zhuǎn)移。AJMP addr11 ; PC PC+2, PC100 addr1186 短轉(zhuǎn)移指令短轉(zhuǎn)移指令機器碼:機器碼: 80H rel SJMP rel ; PC PC+2+rel87 ORG1000H1000H 7401H START: MOV A , #01H ;字位碼初值送字位碼初值送A1002H F8H MOV R0,A ;暫存于暫存于R01003H 90CF01H LOOP: MOV DPTR , #0CF01H 1017H 80rel SJMPSTART ;轉(zhuǎn)入轉(zhuǎn)入STAR
28、T SJMP$例例3.18 下列程序中,請計算下列程序中,請計算SJMP START指令碼中的指令碼中的rel,并分析目標(biāo)地址的轉(zhuǎn)移,并分析目標(biāo)地址的轉(zhuǎn)移范圍。范圍。88a) 地址偏移量地址偏移量rel的計算:的計算: 目標(biāo)轉(zhuǎn)移地址源地址目標(biāo)轉(zhuǎn)移地址源地址2rel rel=目標(biāo)轉(zhuǎn)移地址源地址目標(biāo)轉(zhuǎn)移地址源地址2 1000H1017H225 rel應(yīng)采用補碼表示,為此應(yīng)采用補碼表示,為此rel=-25補補E7H89b) 轉(zhuǎn)移地址范圍的確定:轉(zhuǎn)移地址通常轉(zhuǎn)移地址范圍的確定:轉(zhuǎn)移地址通常以以SJMP指令始址為參照點,但實際的指令始址為參照點,但實際的參照點是對參照點是對PC2,因,因rel的取值范圍
29、是的取值范圍是128127, 故可得到轉(zhuǎn)移地址的故可得到轉(zhuǎn)移地址的實際轉(zhuǎn)移范圍為實際轉(zhuǎn)移范圍為126129。 90 變址尋址轉(zhuǎn)移指令變址尋址轉(zhuǎn)移指令機器碼:機器碼: 73H在在64KB地址范圍內(nèi)無條件轉(zhuǎn)移。地址范圍內(nèi)無條件轉(zhuǎn)移。91JZ rel ; A=0 PC PC+2+rel A 0 PC PC+2JNZ rel ; A0 PC PC+2+rel A=0 PC PC+2累加器累加器A判零轉(zhuǎn)移判零轉(zhuǎn)移(2條條)2 2)條件轉(zhuǎn)移指令)條件轉(zhuǎn)移指令92CJNE A, #data, rel ;不相等轉(zhuǎn)移不相等轉(zhuǎn)移;#data=A, PC PC+3, C 0 ;#dataA, PC PC+3+rel
30、, C 1CJNE A, direct,rel ;不相等轉(zhuǎn)移不相等轉(zhuǎn)移 ;若若A=(direct) ,則則PCPC+3,C0 ;若若A(direct) ,則則PCPC+3+rel, C0 ;若若Adata ,則則PCPC+3+rel, C0 ;若若Rndata ,則則PCPC+3+rel, C0 ;若若(Ri)data ,則則PCPC+3+rel, C194 ORG 2000H CLR A MOV R0, #30HLOOP0:CJNE R0, #64H, LOOP1 INC ALOOP1: INC R0 CJNE R0, #3FH, LOOP0 SJMP $例例3.19在內(nèi)部在內(nèi)部RAM 30
31、H3EH中找出值為中找出值為100(64H)的單元有多少個的單元有多少個?MOV R1, #0FHDJNZ R1, LOOP095DJNZ direct, rel ;(direct) (direct)-1 ;若若(direct)0,則則PCPC+3+rel ;若若(direct)=0,則,則PCPC+3DJNZ Rn, rel;Rn Rn1 ;若若Rn=0 則則 PC PC+2 ;若若Rn0 則則PC PC+2+rel減一不為零轉(zhuǎn)移減一不為零轉(zhuǎn)移96 ORG 1000H MOV R0, #9 CLR A LOOP: ADD A, R0 DJNZ R0, LOOP SJMP $91nn例例3.2
32、0編程計算的編程計算的值值97調(diào)用指令調(diào)用指令(2(2條條) )ACALL addr11 ; PC PC+2 ; SP SP+1 ; (SP) PC70 ; SP SP-1 ; (SP) PC158 ; PC100 addr11 a) 短調(diào)用指令短調(diào)用指令3)子程序調(diào)用和返回指令)子程序調(diào)用和返回指令98機器碼:機器碼: a10 a9 a8 1 0 0 0 1 a7 a6 a5 a4 a3 a2 a1 a0 雙字節(jié)指令,不影響標(biāo)志位,在雙字節(jié)指令,不影響標(biāo)志位,在2KB地址范圍內(nèi)尋址,以調(diào)用子程序。地址范圍內(nèi)尋址,以調(diào)用子程序。99b) b) 長調(diào)用指令長調(diào)用指令LCALL addr16;PC
33、 PC+3;SP SP+1 , (SP) PC70;SP SP1,(SP) PC158;PC addr16三字節(jié)指令,在三字節(jié)指令,在64KB64KB地址范圍內(nèi)調(diào)用子程序。地址范圍內(nèi)調(diào)用子程序。100返回指令返回指令(2條條)PC158 (SP) ,SP SP-1PC70 (SP), SP SP-1a)子程序返回指令子程序返回指令 RET101調(diào)用子程序后必須返回主程序,因此,調(diào)用子程序后必須返回主程序,因此,每種子程序的最后一條指令必須是返回每種子程序的最后一條指令必須是返回指令指令RET。返回時完成將調(diào)子時壓入堆。返回時完成將調(diào)子時壓入堆棧的斷點地址送回棧的斷點地址送回PC以恢復(fù)斷點功能。以恢復(fù)斷點功能。堆棧遵循堆棧遵循“后進(jìn)先出后進(jìn)先出”原則。原則。102b)中斷返回指令中斷返回指令RETI 中斷服務(wù)程序的最后一條指令后是中斷返中斷服務(wù)程序的最后一條指令后是中斷返回指令回指令RETI。其恢復(fù)斷點的操作與返回指令。其恢復(fù)斷點的操作與返回指令RET相同。此條指令前必須將相應(yīng)的優(yōu)先級狀相同。此條指令前必須將相應(yīng)的優(yōu)先級狀態(tài)觸發(fā)器清態(tài)觸發(fā)器清0。PC158 (SP), SP SP-1PC70 (SP), SP SP-1103空操作空操作NOP 這是一條單字節(jié)指令。執(zhí)行時,不作任何操這是一條單字節(jié)指令。執(zhí)行時,不作任何操作(即空操作),僅將程序計數(shù)器作(即空操作
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年全球及中國單靶射頻磁控濺射鍍膜儀行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球不銹鋼單刃剃須刀片行業(yè)調(diào)研及趨勢分析報告
- 幼兒繪本講述與演繹經(jīng)典幼兒繪本介紹講解
- 2025室內(nèi)植物出租合同范文
- 全新員工合作協(xié)議書合同下載
- 收購合同范本
- 軟件系統(tǒng)維護(hù)服務(wù)合同
- 指標(biāo)租賃合同年
- 2025合同模板信息服務(wù)部門的組織結(jié)構(gòu)范本
- 建筑工程改造施工合同范本
- 《航運市場營銷》課件-海運巨頭馬士基
- 博物館布展項目施工組織設(shè)計(完整模板)
- 繪本創(chuàng)作方案
- 《童年的水墨畫》的說課課件
- 地鐵保潔服務(wù)投標(biāo)方案(技術(shù)標(biāo))
- 2023年河南省新鄉(xiāng)市鳳泉區(qū)事業(yè)單位招聘53人高頻考點題庫(共500題含答案解析)模擬練習(xí)試卷
- 2023年小升初簡歷下載
- 廣府文化的奇葩
- 公路工程標(biāo)準(zhǔn)施工招標(biāo)文件(2018年版)解析
- 七年級地理下冊期末試卷(人教版)
- 第八節(jié) 元代散曲
評論
0/150
提交評論