單片技術(shù)與應(yīng)用指令系統(tǒng)復(fù)習(xí)_第1頁
單片技術(shù)與應(yīng)用指令系統(tǒng)復(fù)習(xí)_第2頁
單片技術(shù)與應(yīng)用指令系統(tǒng)復(fù)習(xí)_第3頁
單片技術(shù)與應(yīng)用指令系統(tǒng)復(fù)習(xí)_第4頁
單片技術(shù)與應(yīng)用指令系統(tǒng)復(fù)習(xí)_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、單片機(jī)技術(shù)及應(yīng)用單片機(jī)技術(shù)及應(yīng)用 2單片機(jī)指令簡介單片機(jī)指令簡介MSC-51MSC-51單片機(jī)指令系統(tǒng)包括單片機(jī)指令系統(tǒng)包括111111條指令,按功能可以分為以下五類:條指令,按功能可以分為以下五類: 數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令 (2929條)條) 算術(shù)運(yùn)算指令算術(shù)運(yùn)算指令 (2424條)條) 邏輯運(yùn)算指令邏輯運(yùn)算指令 (2424條)條) 控制轉(zhuǎn)移指令控制轉(zhuǎn)移指令 (1717條)條) 位操作指令位操作指令 (1717條)條)3單片機(jī)指令簡介單片機(jī)指令簡介一、指令系統(tǒng)的符號說明一、指令系統(tǒng)的符號說明符號符號含含義義Rn 表示當(dāng)前選定寄存器組的工作寄存器R0R7Ri 表示作為間接尋址的地址指針R0R

2、1#data 表示8位立即數(shù),即00HFFH#data16 表示16位立即數(shù),即0000HFFFFHaddr16 表示16位地址,用于64KB范圍內(nèi)尋址addr11 表示11位地址,用于2KB范圍內(nèi)尋址direct 8位直接地址,可以是內(nèi)部RAM的某一單元或某一專用寄存器的地址Rel 帶符號的8位偏移量(-128+127)Bit 位尋址區(qū)的直接尋址位(X) X 地址單元或寄存器中的內(nèi)容(X) 將X 地址單元或寄存器中的內(nèi)容作為地址,該地址間接尋址單元中的內(nèi)容將 后面的內(nèi)容傳送到前面去4一一、數(shù)據(jù)傳送指令、數(shù)據(jù)傳送指令(1)(1)以累加器以累加器A A為目的地址的傳送指令為目的地址的傳送指令 (

3、4 4條)條) 助記符格式助記符格式機(jī)器碼機(jī)器碼相應(yīng)操作相應(yīng)操作指令說明指令說明MOV A,RnMOV A,Rn11101rrr11101rrr - Rn - Rn 將工作寄存器將工作寄存器RnRn(即(即R0R7R0R7)內(nèi)容傳送到累加器內(nèi)容傳送到累加器A A中中MOV A,directMOV A,direct11100101directdirect -direct-direct將直接尋址所得的片內(nèi)將直接尋址所得的片內(nèi)RAMRAM單單元內(nèi)容或特殊功能寄存器中元內(nèi)容或特殊功能寄存器中的內(nèi)容傳送到累加器的內(nèi)容傳送到累加器A A中中MOV A,RiMOV A,Ri1110 011i -(Ri) -

4、(Ri) 將間接尋址(將間接尋址(RiRi為為R0R0或或R1R1)所得的片內(nèi)所得的片內(nèi)RAMRAM單元內(nèi)容或特單元內(nèi)容或特殊功能積存器中的內(nèi)容傳送殊功能積存器中的內(nèi)容傳送到累加器到累加器A A中中MOV A,#dataMOV A,#data0111 0100#data -#data -#data 將立即數(shù)傳送到累加器將立即數(shù)傳送到累加器A A中中5(2)(2)以以RnRn為目的地址的傳送指令為目的地址的傳送指令 (3 3條)條) 助記符格式助記符格式機(jī)器碼機(jī)器碼相應(yīng)操作相應(yīng)操作指令說明指令說明 MOV Rn MOV Rn,A A11111rrr11111rrr Rn - A Rn - A 將

5、累加器將累加器A A中內(nèi)容傳送到工作中內(nèi)容傳送到工作寄存器寄存器RnRn(即(即R0-R7R0-R7)中)中 MOV Rn,direct MOV Rn,direct10101rrrdirectdirect Rn -direct Rn -direct將直接尋址所得的片內(nèi)將直接尋址所得的片內(nèi)RAMRAM單單元內(nèi)容或特殊功能寄存器中元內(nèi)容或特殊功能寄存器中的內(nèi)容傳送到工作寄存器的內(nèi)容傳送到工作寄存器RnRn(即(即R0-R7R0-R7)中)中 MOV Rn,#data MOV Rn,#data01111rrr#data Rn-#data Rn-#data 將立即數(shù)傳送到工作寄存器將立即數(shù)傳送到工作寄

6、存器RnRn(即(即R0-R7R0-R7)中)中一一、數(shù)據(jù)傳送指令、數(shù)據(jù)傳送指令6一一、數(shù)據(jù)傳送指令、數(shù)據(jù)傳送指令(3)(3)以直接地址為目的地址的傳送指令以直接地址為目的地址的傳送指令 (5 5條)條) 助記符格式助記符格式機(jī)器碼機(jī)器碼相應(yīng)操作相應(yīng)操作指令說明指令說明MOV direct,AMOV direct,A11111010 11111010 directdirect direct - direct - 將累加器將累加器A A中內(nèi)容傳送到直接中內(nèi)容傳送到直接地址地址directdirect所指出的片內(nèi)存所指出的片內(nèi)存儲單元中。儲單元中。MOV direct,RnMOV direct,R

7、n10001rrrdirectdirect direct - Rn direct - Rn將工作寄存器將工作寄存器RnRn(即(即R0-R7R0-R7)中內(nèi)容傳送到直接地址中內(nèi)容傳送到直接地址directdirect所指出的片內(nèi)存儲單所指出的片內(nèi)存儲單元中元中MOV direct2,direct1MOV direct2,direct110000101direct1direct1direct2direct2direct2 -direct1direct2 -direct1將直接地址將直接地址direct1direct1所指出的所指出的片內(nèi)存儲單元中內(nèi)容傳送到片內(nèi)存儲單元中內(nèi)容傳送到直接地址直接地址

8、direct2direct2所指出的片所指出的片內(nèi)存儲單元中內(nèi)存儲單元中MOV directMOV direct,RiRi1000011i direct direct -(Ri)direct -(Ri)將間接尋址(將間接尋址(RiRi為為R0R0或或R1R1)所得的片內(nèi)所得的片內(nèi)RAMRAM單元內(nèi)容傳送單元內(nèi)容傳送到直接地址到直接地址directdirect所指出的所指出的片內(nèi)存儲單元中片內(nèi)存儲單元中MOV directMOV direct,#data#data0111 0100#data direct -#data direct -#data 將立即數(shù)傳送到直接地址將立即數(shù)傳送到直接地址di

9、rectdirect所指出的片內(nèi)存儲單所指出的片內(nèi)存儲單元中元中7一一、數(shù)據(jù)傳送指令、數(shù)據(jù)傳送指令(4)(4)以寄存器間接地址為目的地址的傳送指令以寄存器間接地址為目的地址的傳送指令 (3 3條)條) 助記符格式助記符格式機(jī)器碼機(jī)器碼相應(yīng)操作相應(yīng)操作指令說明指令說明 MOV Ri MOV Ri,A A1111011i1111011i (Ri) - A (Ri) - A 將累加器將累加器A A中內(nèi)容傳送到間接中內(nèi)容傳送到間接尋址(尋址(RiRi為為R0R0或或R1R1)所得的)所得的片內(nèi)片內(nèi)RAMRAM單元中。單元中。MOV Ri,directMOV Ri,direct1110011idirec

10、tdirect (Ri) -direct (Ri) -direct將直接尋址所得的片內(nèi)將直接尋址所得的片內(nèi)RAMRAM單單元內(nèi)容或特殊功能寄存器中元內(nèi)容或特殊功能寄存器中的內(nèi)容傳送到間接尋址(的內(nèi)容傳送到間接尋址(RiRi為為R0R0或或R1R1)所得的片內(nèi))所得的片內(nèi)RAMRAM單單元中元中MOV Ri,#dataMOV Ri,#data0111010i#data Ri-#data Ri-#data 將立即數(shù)傳送到間接尋址(將立即數(shù)傳送到間接尋址(RiRi為為R0R0或或R1R1)所得的片內(nèi))所得的片內(nèi)RAMRAM單元中單元中8一一、數(shù)據(jù)傳送指令、數(shù)據(jù)傳送指令 2.16 2.16位數(shù)據(jù)傳送指

11、令位數(shù)據(jù)傳送指令 (1 1條)條) 助記符格式助記符格式機(jī)器碼機(jī)器碼相應(yīng)操作相應(yīng)操作指令說明指令說明MOV DPTRMOV DPTR,#data16#data1610010000 10010000 data158 data158 data70data70 (DPTR) -#data16 (DPTR) -#data16 把把1616位常數(shù)裝入數(shù)據(jù)指針位常數(shù)裝入數(shù)據(jù)指針將累加器將累加器A A的內(nèi)容傳送到外部數(shù)據(jù)存儲器的內(nèi)容傳送到外部數(shù)據(jù)存儲器4000H4000H單元中單元中 MOV DPTR,#4000H MOV DPTR,A 9一一、數(shù)據(jù)傳送指令、數(shù)據(jù)傳送指令3. 3. 外部數(shù)據(jù)傳送指令外部數(shù)據(jù)

12、傳送指令 (4 4條)條) 助記符格式助記符格式機(jī)器碼機(jī)器碼相應(yīng)操作相應(yīng)操作指令說明指令說明MOVMOVX X A, A,DPTRDPTR11101rrr11101rrr - - (DPTR)(DPTR) MOVMOVX X A, A,RiRi11100101directdirect -(Ri)(Ri)MOVMOVX X DPTR,DPTR,A A1110 011i (DPTR)(DPTR)- Rn Rn 累加器累加器A A與工作寄存器與工作寄存器Rn Rn 的的內(nèi)容互換內(nèi)容互換XCHXCH A, A,directdirect11000101directdirect - - directdir

13、ect累加器累加器A A與直接地址對應(yīng)的與直接地址對應(yīng)的RAMRAM單元的內(nèi)容互換單元的內(nèi)容互換XCHXCH A, A, R Ri i1100011i - - (Ri) (Ri) 將累加器將累加器A A中的數(shù)據(jù)與間接尋中的數(shù)據(jù)與間接尋址(址(RiRi為為R0R0或或R1R1)所得的片)所得的片內(nèi)內(nèi)RAMRAM單元的內(nèi)容互換單元的內(nèi)容互換注意: 以上指令結(jié)果影響PSW的P標(biāo)志。11一一、數(shù)據(jù)傳送指令、數(shù)據(jù)傳送指令4 4. . 交換和查表類指令交換和查表類指令 (2 2) 半字節(jié)交換指令(半字節(jié)交換指令(1 1條)條) 助記符格式助記符格式機(jī)器碼機(jī)器碼相應(yīng)操作相應(yīng)操作指令說明指令說明XCHDXCH

14、D A, A, R Ri i11011010101 11i1i3-0 3-0 - - (R Ri)3-0i)3-0 低低4 4位交換、高位交換、高4 4位不變位不變注意: 以上指令結(jié)果影響PSW的P標(biāo)志。12一一、數(shù)據(jù)傳送指令、數(shù)據(jù)傳送指令4 4. . 交換和查表類指令交換和查表類指令 (3 3) 累加器累加器A A中高中高4 4位與低位與低4 4位交換(位交換(1 1條)條) 助記符格式助記符格式機(jī)器碼機(jī)器碼相應(yīng)操作相應(yīng)操作指令說明指令說明SWAP ASWAP A11011000100001003-0 3-0 - - A 7-4 A 7-4 高、低高、低4 4位互相交換位互相交換注意: 以上

15、指令結(jié)果不影響PSW的P標(biāo)志。13一一、數(shù)據(jù)傳送指令、數(shù)據(jù)傳送指令4 4. . 交換和查表類指令交換和查表類指令 (4 4) 查表指令(查表指令(2 2條)條) 助記符格式助記符格式機(jī)器碼機(jī)器碼相應(yīng)操作相應(yīng)操作指令說明指令說明MOVC A,A+PCMOVC A,A+PC1 10 00 00001100011 -(A+PC)-(A+PC) ) ) A+PC A+PC 所指外部程序存儲所指外部程序存儲單元的值送單元的值送A AMOVC A,A+DPTRMOVC A,A+DPTR1 10 00 00001100011 -(A+DPTR)-(A+DPTR) ) ) A+DPTRA+DPTR所指外部程序

16、存儲所指外部程序存儲單元的值送單元的值送A A注意: 1)以上指令結(jié)果影響PSW的P標(biāo)志。2) 查表指令用于查找存放在程序存儲器中的表格。14一一、數(shù)據(jù)傳送指令、數(shù)據(jù)傳送指令4 4. . 交換和查表類指令交換和查表類指令 (5 5) 堆棧操作指令(堆棧操作指令(2 2條)條) 助記符格式助記符格式機(jī)器碼機(jī)器碼相應(yīng)操作相應(yīng)操作指令說明指令說明PUSH directPUSH direct1 10 00 00000000000 direct directSP SP -SP+1-SP+1(SP)(SP) -(direct-(direct)將將SP+1SP+1,將源地址單元中,將源地址單元中的數(shù)據(jù)傳送給

17、的數(shù)據(jù)傳送給SPSP所指示的所指示的單元中單元中POP directPOP direct1 11011010 0000000directdirect(direct direct )- -(SP)SP)SP SP -SP-1-SP-1將將SPSP所指示的單元中的數(shù)所指示的單元中的數(shù)傳送到傳送到directdirect地址單元中地址單元中,然后,然后SPSP-SP-1-SP-1注意: 1)堆棧是用戶自己設(shè)定的內(nèi)部RAM中的一塊專用存儲區(qū),SP默認(rèn)為07H。2) 堆棧遵循后進(jìn)先出的原則。3)堆棧操作是字節(jié)操作,直接尋址。15二、算術(shù)運(yùn)算類指令二、算術(shù)運(yùn)算類指令 算術(shù)運(yùn)算類指令可以完成加、減、乘、除及

18、加1和減1等運(yùn)算。 1 1. . 加、減法指令加、減法指令 (1) (1) 加法指令加法指令 (8 8條)條) ADD A, Rn AA+RnADD A, direct AA+directADD A, Ri AA+RiADD A, #data AA+#dataADDC A, Rn AA+Rn+CyADDC A, direct AA+direct+CyADDC A, Ri AA+Ri+CyADDC A, #data AA+#data+Cy1)ADD 與 ADDC 的區(qū)別為是否加進(jìn)位位Cy2)指令執(zhí)行結(jié)果均存在累加器中3) 加法指令結(jié)果均影響PSW中的Cy、OV、AC和P標(biāo)志。16二、算術(shù)運(yùn)算類指

19、令二、算術(shù)運(yùn)算類指令1 1. . 加、減法指令加、減法指令 (2) (2) 減法指令減法指令 (4 4條)條) 1)減法指令中沒有不帶借位的減法指令,在需要時先將Cy清零。2)指令執(zhí)行結(jié)果均存在累加器中。3) 減法指令結(jié)果均影響PSW中的Cy、OV、AC和P標(biāo)志。SUBB A, Rn AA-Rn-Cy SUBB A, direct AA-direct-CySUBB A, Ri AA-Ri-CySUBB A, #data AA-#data-Cy17二、算術(shù)運(yùn)算類指令二、算術(shù)運(yùn)算類指令1 1. . 加、減法指令加、減法指令 (3) BCD(3) BCD碼調(diào)正指令(碼調(diào)正指令(1 1條)條) 用二進(jìn)

20、制形式表示十進(jìn)制數(shù)。用二進(jìn)制形式表示十進(jìn)制數(shù)。 1)指令結(jié)果均影響PSW中的Cy、OV、AC和P標(biāo)志。DA A舉例:舉例: MOV A, #5H ADD A, #08H DA A18二、算術(shù)運(yùn)算類指令二、算術(shù)運(yùn)算類指令1 1. . 加、減法指令加、減法指令 (4) (4) 加加1 1、減、減1 1 指令指令 (9 9條)條) INC A/Rn/direct/Ri/DPTR DEC A/Rn/direct/Ri舉例 INC R0 INC R019二、算術(shù)運(yùn)算類指令二、算術(shù)運(yùn)算類指令1 1. . 乘、除法指令乘、除法指令 (4) (4) 乘法指令乘法指令 (1 1條)條) MUL AB BA A*

21、B 高位存高位存B, 低位存低位存A例 1 設(shè) A=4EH, B=5DH MUL AB A=55H,B=1CH ,OV=1 ,P=0例 2 利用乘法指令編寫15HX33H的程序 MOV A, #15H MOV B, #33H MUL AB MOV 30H, A MOV 31H,B 20二、算術(shù)運(yùn)算類指令二、算術(shù)運(yùn)算類指令1 1. . 乘、除法指令乘、除法指令 (4) (4) 除法指令除法指令 (1 1條)條) DIV AB A/B 商存商存A,余數(shù)存,余數(shù)存B例 設(shè) A=87H, B=0CH DIV AB A=0BH,B=03H ,OV=0 ,Cy=021二、算術(shù)運(yùn)算類指令二、算術(shù)運(yùn)算類指令補(bǔ)

22、充:算術(shù)運(yùn)算指令對狀態(tài)標(biāo)志位的影響補(bǔ)充:算術(shù)運(yùn)算指令對狀態(tài)標(biāo)志位的影響標(biāo)志標(biāo)志/指指令令說明說明ADD、ADDC、SUBBDAMULDIVCy進(jìn)位標(biāo)志 0 0AC輔助進(jìn)位標(biāo)志 XXXOV溢出標(biāo)志位 X P奇偶標(biāo)志位 X 22三、邏輯運(yùn)算及移位類指令三、邏輯運(yùn)算及移位類指令1. 1. 邏輯運(yùn)算指令邏輯運(yùn)算指令 (1) (1) 邏輯與運(yùn)算指令邏輯與運(yùn)算指令 (6 6條)條) ANL A, direct AAdirectANL A, Rn AA RNANL A, Ri AA (Ri)ANL A, #data AA #dataANL direct, A directdirectAANL direct,

23、 #data directdirect#data1)按位進(jìn)行與操作;2)指令結(jié)果均影響PSW中的P標(biāo)志;3)通常用于將一個字節(jié)中的指定位清0,其他位不變。23三、邏輯運(yùn)算及移位類指令三、邏輯運(yùn)算及移位類指令1. 1. 邏輯運(yùn)算指令邏輯運(yùn)算指令 (2) (2) 邏輯或運(yùn)算指令邏輯或運(yùn)算指令 (6 6條)條) ORL A, direct AAdirectORL A, Rn AA RNORL A, Ri AA (Ri)ORL A, #data AA #dataORL direct, A directdirect AORL direct, #data directdirect #data1)按位進(jìn)行或

24、操作;2)指令結(jié)果均影響PSW中的P標(biāo)志;3)通常用于將一個字節(jié)中的指定位置1,其他位不變。24三、邏輯運(yùn)算及移位類指令三、邏輯運(yùn)算及移位類指令1. 1. 邏輯運(yùn)算指令邏輯運(yùn)算指令 (3) (3) 邏輯異或運(yùn)算指令邏輯異或運(yùn)算指令 (6 6條)條) XRL A, direct AA directXRL A, Rn AA RnXRL A, Ri AA (Ri)XRL A, #data AA #dataXRL direct, A directdirect AXRL direct, #data directdirect #data1)按位進(jìn)行異或操作;2)指令結(jié)果均影響PSW中的P標(biāo)志;3)異或的原

25、則是相同為0,不同為1。25三、邏輯運(yùn)算及移位類指令三、邏輯運(yùn)算及移位類指令1. 1. 邏輯運(yùn)算指令邏輯運(yùn)算指令 (4) (4) 累加器累加器A A清清0 0和取反指令和取反指令 (2 2條)條) CLR A ; A00HCPL A ; 按位取反1)指令結(jié)果影響PSW中的P標(biāo)志。26三、邏輯運(yùn)算及移位類指令三、邏輯運(yùn)算及移位類指令 2. 2. 循環(huán)移位指令循環(huán)移位指令 (4 4條)條) RL A ;循環(huán)左移 RR A ;循環(huán)右移RLC A ;帶進(jìn)位循環(huán)左移,影響Cy標(biāo)志RRC A ;帶進(jìn)位循環(huán)右移,影響Cy標(biāo)志1)前2條指令的功能是將累加器A的內(nèi)容循環(huán)左移或右移1位,后2條指令是將進(jìn)位位Cy和

26、累加器A的內(nèi)容一起循環(huán)左移或右移。2)執(zhí)行帶進(jìn)位的循環(huán)移位指令之前,Cy應(yīng)先清0。27四、控制轉(zhuǎn)移類指令四、控制轉(zhuǎn)移類指令1. 1. 無條件轉(zhuǎn)移指令無條件轉(zhuǎn)移指令 (4 4條)條) (1 1) 長轉(zhuǎn)移指令長轉(zhuǎn)移指令 LJMP addr16 ; PC addr161)該指令可以轉(zhuǎn)移到64KB程序存儲器中的任意位置;2)該指令結(jié)果不影響程序狀態(tài)字寄存器PSW。28四、控制轉(zhuǎn)移類指令四、控制轉(zhuǎn)移類指令1. 1. 無條件轉(zhuǎn)移指令無條件轉(zhuǎn)移指令 (4 4條)條) (2 2) 絕對轉(zhuǎn)移指令絕對轉(zhuǎn)移指令 AJMP addr11 ;PC 10-0 addr11,PC1511不變1)該指令的轉(zhuǎn)移范圍是2KB;2

27、)該指令結(jié)果不影響程序狀態(tài)字寄存器PSW。29第一節(jié)第一節(jié) 單片機(jī)指令簡介單片機(jī)指令簡介五、控制轉(zhuǎn)移類指令五、控制轉(zhuǎn)移類指令 1. 1. 無條件轉(zhuǎn)移指令無條件轉(zhuǎn)移指令 (4 4條)條) (3 3) 相對轉(zhuǎn)移相對轉(zhuǎn)移/ /短轉(zhuǎn)移指令短轉(zhuǎn)移指令 SJMP rel ; PC PC+rel 1)該指令的轉(zhuǎn)移范圍是以本指令為中心的-128+127字節(jié)以內(nèi);2)該指令結(jié)果不影響程序狀態(tài)字寄存器PSW。3) 實際應(yīng)用中addr16、addr11或rel 都是用標(biāo)號來代替,不一定寫出具體地址。4) SJMP $ 可以使程序原地踏步。30第一節(jié)第一節(jié) 單片機(jī)指令簡介單片機(jī)指令簡介五、控制轉(zhuǎn)移類指令五、控制轉(zhuǎn)移類

28、指令 1. 1. 無條件轉(zhuǎn)移指令無條件轉(zhuǎn)移指令 (4 4條)條) (4 4) 散轉(zhuǎn)移指令散轉(zhuǎn)移指令 JMP A+DPTR PC A+DPTR 1)該指令通常用于散轉(zhuǎn)(多分支)程序,以DPTR內(nèi)容為基址,以A的內(nèi)容作為變址,轉(zhuǎn)移到目的地址,通過給A賦以不同的值,實現(xiàn)程序的多分支轉(zhuǎn)移;2)該指令的轉(zhuǎn)移范圍是64KB;3)該指令結(jié)果不影響程序狀態(tài)字寄存器PSW。31四、控制轉(zhuǎn)移類指令四、控制轉(zhuǎn)移類指令2. 2. 條件轉(zhuǎn)移指令條件轉(zhuǎn)移指令 (8 8條)條) 條件轉(zhuǎn)移是當(dāng)某種條件滿足時,轉(zhuǎn)移才進(jìn)行;而條件不滿足時,程序就順序往下執(zhí)行。 (1 1) 累加器判零轉(zhuǎn)移指令累加器判零轉(zhuǎn)移指令 2 2字節(jié)指令字節(jié)

29、指令 JZ rel 若A =0 則PC PC+2+rel 否則程序順序執(zhí)行JNZ rel 若A 0 則PC PC+2+rel 否則程序順序執(zhí)行1)該指令的轉(zhuǎn)移范圍是-128127字節(jié)2)該指令結(jié)果不影響程序狀態(tài)字寄存器PSW。32四、控制轉(zhuǎn)移類指令四、控制轉(zhuǎn)移類指令2. 2. 條件轉(zhuǎn)移指令條件轉(zhuǎn)移指令 (8 8條)條) (2 2) 比較轉(zhuǎn)移指令比較轉(zhuǎn)移指令 三字節(jié)指令三字節(jié)指令 CJNE A, #data, rel 若A#data 則PC PC+3+rel, 否則順序執(zhí)行; 若A#data,則Cy=1,否則Cy=0CJNE Rn, #data, rel 若Rn #data 則PC PC+3+r

30、el, 否則順序執(zhí)行; 若Rn #data,則Cy=1,否則Cy=0CJNE Ri, #data, rel 若Ri #data 則PC PC+3+rel, 否則順序執(zhí)行; 若Ri #data,則Cy=1,否則Cy=0CJNE A, #direct, rel 若A(direct) 則PC PC+3+rel, 否則順序執(zhí)行; 若A=源操作數(shù),則Cy=0;目的操作數(shù)小于源操作數(shù),Cy=1。33四、控制轉(zhuǎn)移類指令四、控制轉(zhuǎn)移類指令 2. 2. 條件轉(zhuǎn)移指令條件轉(zhuǎn)移指令 (8 8條)條) (3 3) 減減1 1非零轉(zhuǎn)移指令非零轉(zhuǎn)移指令 DJNZ Rn,rel ; Rn Rn-1 若Rn 0,則PC PC

31、+2+rel, 否則順序執(zhí)行DJNZ direct,rel ; (direct) (direct) -1 若(direct) 0,則PC PC+3+rel, 否則順序執(zhí)行 1)DJNZ 指令通常用于循環(huán)控制中控制循環(huán)次數(shù)。2)該指令結(jié)果不影響程序狀態(tài)字寄存器PSW。34四、控制轉(zhuǎn)移類指令四、控制轉(zhuǎn)移類指令3. 3. 子程序調(diào)用和返回指令子程序調(diào)用和返回指令 (5 5條)條) (1 1) 絕對調(diào)用指令絕對調(diào)用指令 ACALL addr11 PC PC+2 , SP SP+1,SP PC0-7 SP SP+1,SP PC8-15 PC0-10 addr111)該指令的調(diào)用范圍是2KB;2)該指令結(jié)

32、果不影響程序狀態(tài)字寄存器PSW。35四、控制轉(zhuǎn)移類指令四、控制轉(zhuǎn)移類指令 3. 3. 子程序調(diào)用和返回指令子程序調(diào)用和返回指令 (5 5條)條) (2 2) 長調(diào)用指令長調(diào)用指令 LCALL addr16 PC PC+3 , SP SP+1,SP PC0-7 SP SP+1,SP PC8-15 PC0 addr161)該指令的調(diào)用范圍是64KB;2)該指令結(jié)果不影響程序狀態(tài)字寄存器PSW。36四、控制轉(zhuǎn)移類指令四、控制轉(zhuǎn)移類指令3. 3. 子程序調(diào)用和返回指令子程序調(diào)用和返回指令 (5 5條)條) (3 3) 返回指令返回指令 RET PC8-15 SP , SP SP-1, PC0-7SP

33、, SP SP-1 子程序返回指令RETI PC8-15 SP , SP SP-1, PC0-7SP , SP SP-1 中斷返回指令1)該指令結(jié)果不影響程序狀態(tài)字寄存器PSW。37四、控制轉(zhuǎn)移類指令四、控制轉(zhuǎn)移類指令3. 3. 子程序調(diào)用和返回指令子程序調(diào)用和返回指令 (5 5條)條) (4 4) 空操作指令空操作指令 NOP 消耗1個機(jī)器周期1)該指令結(jié)果不影響程序狀態(tài)字寄存器PSW。38五、位操作類指令五、位操作類指令1. 1. 位傳送指令位傳送指令 (2 2條)條) MOV C,bit Cy bitMOV bit,C bit Cy1)位傳送必須通過進(jìn)位位C進(jìn)行,不能在兩個位之間直接傳送。 2)進(jìn)位位C也稱為位累加器。39五、位操作類指令五、位操作類指令2. 2. 位置位和位清零指令位置位和位清零指令 (4 4條)條) CLR C Cy 0CLR bit bit 0SETB C Cy 1SETB bit bit 140五、位操作類指令五、位操作類指令3. 3. 位運(yùn)算指令位運(yùn)算指令 (6 6條)條) ANL C,bit Cy Cy bit 位與指令A(yù)NL C,/bit Cy Cy bit 位與指令ORL C,bit Cy Cy bit 位或指令ORL C,/bit Cy Cy bit 位或指令CPL C Cy Cy 位取反指令CPL bit bit bit 位取反指令1)

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論