MCS-51係列單片機指令以A開頭的指令有18條,分別為(wei) :
ACALL addr11 ADD A,Rn ADD A,direct ADD A,@Ri ADD A,#data ADDC A,Rn
ADDC A,direct ADDC A,@Ri ADDC A,#data AJMP addr11 ANL A,Rn ANL A,direct ANL A,@Ri ANL A,#data ANL direct,A ANL direct,#data ANL C,bit ANL C,/bit
1、ACALL addr11
指令名稱:絕對調用指令
指令代碼:A10 A9 A9 1 0 0 0 1 A7 A6 A5 A4 A3 A2 A1 A0
指令功能:構造目的地址,進行子程序調用。其方法是以指令提供的11位地址(al0~a0),
取代PC的低11位,PC的高5位不變。
操作內(nei) 容:
PC←(PC)+2
SP←(SP)+1
(SP)←(PC)7~0
SP←(SP)+1
(SP)←(PC)15~8
PC10~0←addrl0~0
字節數: 2
機器周期:2
使用說明:由於(yu) 指令隻給出子程序入口地址的低11位,因此調用範圍是2KB。
2、ADD A,Rn
指令名稱:寄存器加法指令
指令代碼:28H~2FH
指令功能:累加器內(nei) 容與(yu) 寄存器內(nei) 容相加
操作內(nei) 容:A←(A)+(Rn), n=0~7
字節數: 1
機器周期;1
影響標誌位:C,AC,OV
3、ADD A,direct
指令名稱:直接尋址加法指令
指令代碼:25H
指令功能:累加器內(nei) 容與(yu) 內(nei) 部RAM單元或專(zhuan) 用寄存器內(nei) 容相加
操作內(nei) 容:A←(A)+(direct)
字節數: 2
機器周期:1
影響標誌位:C,AC,OV
4、ADD A,@Ri ’
指令名稱:間接尋址加法指令
指令代碼:26H~27H
指令功能:累加器內(nei) 容與(yu) 內(nei) 部RAM低128單元內(nei) 容相加
操作內(nei) 容:A←(A)+((Ri)), i=0,1
字節數: 1
機器周期:1
影響標誌位:C,AC,OV
5、ADD A,#data
指令名稱:立即數加法指令
指令代碼:24H
指令功能:累加器內(nei) 容與(yu) 立即數相加
操作內(nei) 容:A←(A)+data
字節數: 2
機器周期:1
影響標誌位:C,AC,OV
6、ADDC A,Rn
指令名稱:寄存器帶進位加法指令
指令代碼:38H~3FH
指令功能:累加器內(nei) 容、寄存器內(nei) 容和進位位相加
操作內(nei) 容:A←(A)+(Rn)+(C), n=0~7
字節數: 1
機器周期:1
影響標誌位:C,AC,OV
7、ADDC A,direct
指令名稱:直接尋址帶進位加法指令
指令代碼:35H
指令功能:累加器內(nei) 容、內(nei) 部RAM低128單元或專(zhuan) 用寄存器內(nei) 容與(yu) 進位位加
操作內(nei) 容:A←(A)+(direct)+(C)
字節數: 2
機器周期:1
影響標誌位:C,AC,OV
8、ADDC A,@Ri
指令名稱:間接尋址帶進位加法指令
指令代碼:36H~37H
指令功能:累加器內(nei) 容、內(nei) 部RAM低128單元內(nei) 容及進位位相加
操作內(nei) 容:A←(A)+((Ri))+(C), i=0,1
字節數: 1
機器周期:1
影響標誌位:C,AC,OV
9、ADDC A,#data
指令名稱:立即數帶進位加法指令
指令代碼:34H
指令功能:累加器內(nei) 容、立即數及進位位相加
操作內(nei) 容:A←(A)+data+(C)
字節數: 2
機器周期:1
影響標誌位:C,AC,OV
10、AJMP addr11
指令名稱:絕對轉移指令
指令代碼:A10 A9 A8 1 0 0 0 1 A7 A6 A5 A4 A3 A2 A1 A0
指令功能:構造目的地址,實現程序轉移。其方法是以指令提供的11位地址,取代PC的低11位,.而PC的高5位保持不變。
操作內(nei) 容:PC←(PC)+2
PCl0~0←addrll
字節數: 2
機器周期:2
使用說明:由於(yu) addrll的最小值是000H,最大值是7FFH,因此地址轉移範圍是2KB。
11、ANL A,Rn
指令名稱:寄存器邏輯與(yu) 指令
指令代碼:58H~5FH
指令功能:累加器內(nei) 容邏輯與(yu) 寄存器內(nei) 容
操作內(nei) 容:A←(A)∧(Rn), n=0~7
字節數: 1
機器周期:1
12、ANL A,direct
指令名稱:直接尋址邏輯與(yu) 指令
指令代碼:55H
指令功能:累加器內(nei) 容邏輯與(yu) 內(nei) 部RAM低128單元或專(zhuan) 用寄存器內(nei) 容
操作內(nei) 容:A←(A)∧(diret)
字節數: 2
機器周期:1
13、ANL A,@Ri
指令名稱:間接尋址邏輯與(yu) 指令
指令代碼:56H~57H
指令功能:累加器內(nei) 容邏輯與(yu) 內(nei) 部RAM低128單元內(nei) 容
操作內(nei) 容:A←(A)∧((Ri)) i=0,1
字節數: 1
機器周期:1
14、ANL A,#data
指令名稱:立即數邏輯與(yu) 指令
指令代碼:54H
指令功能:累加器內(nei) 容邏輯與(yu) 立即數
操作內(nei) 容:A←(A)∧data
字節數: 2
機器周期:1
15、ANL direct,A
指令名稱:累加器邏輯與(yu) 指令
指令代碼:52H
指令功能:內(nei) 部RAM低128單元或專(zhuan) 用寄存器內(nei) 容邏輯與(yu) 累加器內(nei) 容
操作內(nei) 容:direct←(A)∧(direct)
字節數: 2
機器周期:1
16、ANL direct, #data
指令名稱:邏輯與(yu) 指令
指令代碼:53H
指令功能:內(nei) 部RAM低128單元或專(zhuan) 用寄存器內(nei) 容邏輯與(yu) 立即數
操作內(nei) 容:direct←(direct)∧data
字節數: 3
機器周期:2
17、ANL C,bit
指令名稱:位邏輯與(yu) 指令
指令代碼:82H
指令功能:進位標誌邏輯與(yu) 直接尋址位
操作內(nei) 容:C←(C)∧(bit)
字節數: 2
機器周期:2
18、ANL C,/bit
指令名稱:位邏輯與(yu) 指令
指令代碼:B0H
指令功能:進位標誌邏輯與(yu) 直接尋址位的反
操作內(nei) 容:C←(C)∧(bit)
字節數: 2
機器周期:2
MCS-51係列單片機指令以C開頭的指令有10條,分別為(wei) :
CJNE A,dircet,rel CJNE A,#data,rel CJNE Rn,#data,rel CJNE @Ri,#data,rel CLR A CLR C CLR bit CPL A CPL C CPL bit
1、CJNE A,dircet,rel
指令名稱:數值比較轉移指令
指令代碼:B5H
指令功能:累加器內(nei) 容與(yu) 內(nei) 部RAM低128字節或專(zhuan) 用寄存器內(nei) 容比較,不等則轉移。
操作內(nei) 容:若(A)=(direct),則PC←(PC)+3,C←0
若(A)>(direct),則PC←(PC)+3+rel,C←0
若(A)<(direct),則PC←(PC)+3+rel,C←1
字節數: 3
機器周期:2
2、CJNE A,#data,rel
指令名稱:數值比較轉移指令
指令代碼:B4H
指令功能:累加器內(nei) 容與(yu) 立即數比較,不等則轉移。
操作內(nei) 容:若(A)=data,則PC←(PC)+3,C←0
若(A)>data,則PC←(PC)+3+rel,C←0
若(A)<data,則PC←(PC)+3+rel,C←1
字節數: 3
機器周期:2
3、CJNE Rn,#data,rel
指令名稱:數值比較轉移指令
指令代碼:B8H~BFH
指令功能:寄存器內(nei) 容與(yu) 立即數比較,不等則轉移。
操作內(nei) 容:若(Rn)=data,則PC←(PC)+3,C←0
若(Rn)>data,則PC←(PC)+3+rel,C←0
若(Rn)<data,則PC←(PC)+3+rel,C←1
字節數: 3
機器周期:2
4、CJNE @Ri,#data,rel
指令名稱:數值比較轉移指令
指令代碼:B6H~B7H
指令功能:內(nei) 部RAM低128單元內(nei) 容與(yu) 立即數比較,不等則轉移。
操作內(nei) 容:若((Ri))=data,則PC←(PC)+3,C←0
若((Ri))>data,則PC←(PC)+3+rel,C←0
若((Ri))<data,則PC←(PC)+3+rel,C←1
字節數: 3
機器周期:2
5、CLR A
指令名稱:累加器清0指令
指令代碼:E4H
指令功能:累加器清0
操作內(nei) 容:A←0
字節數: 1
機器周期:1
6、CLR C
指令名稱:進位標誌清0指令
指令代碼:C3H
指令功能:進位位清0
操作內(nei) 容:C←0
字節數: 1
機器周期:1
7、CLR bit
指令名稱:直接尋址位清0指令
指令代碼:C2H
指令功能:直接尋址位清0
操作內(nei) 容:bit←0
字節數: 2
機器周期:1
8、CPL A
指令名稱:累加器取反指令
指令代碼:F4H
指令功能:累加器取反
操作內(nei) 容:A←(A)
字節數: 1
機器周期:1
9、CPL C
指令名稱:進位標誌取反指令
指令代碼:B3H
指令功能:進位標誌位狀態取反
操作內(nei) 容:C←(c取反)
字節數: 1
機器周期:1
10、 CPL bit
指令名稱:直接尋址位取反指令
指令代碼:B2H
指令功能:直接尋址位取反
操作內(nei) 容:bit←(bit取反)
字節數: 2
機器周期:1
MCS-51係列單片機指令以D開頭的指令有8條,分別為(wei) :
DA A DEC A DEC Rn DEC direct DEC @Ri DIV AB DJNZ Rn,rel DJNZ direct,rel
1、DA A
指令名稱:十進製調整指令
指令代碼:D4H
指令功能:對BCD碼加法運算的結果進行有條件的修正
操作內(nei) 容:若(A)3~0>9∨(AC)=1,則A3~0←(A)3~0+6
若(A)7~4>9∨(C)=1,則A7~4←(A)7~4+6
若(A)7~4=9∧(A)3~0>9,則A7~4←(A)7~4+6
字節數: 1
機器周期:1
使用說明:DA指令不影響溢出標誌
2、DEC A
指令名稱:累加器減1指令
指令代碼:14H
指令功能:累加器內(nei) 容減1
操作內(nei) 容:A←(A)-1
字節數: 1
機器周期:1
3、DEC Rn
指令名稱:寄存器減1指令
指令代碼:18H~1FH
指令功能:寄存器內(nei) 容減1
操作內(nei) 容:Rn←(Rn)-1,n=0~7
字節數: 1
機器周期:1
4、DEC direct
指令名稱:直接尋址減1指令
指令代碼:15H
指令功能:內(nei) 部RAM低128單元及專(zhuan) 用寄存器內(nei) 容減1
操作內(nei) 容:direct←(direct)-1
字節數: 2
機器周期:1
5、DEC @Ri
指令名稱:間接尋址減1指令
指令代碼:16H~17H
指令功能:內(nei) 部RAM低128單元內(nei) 容減1
操作內(nei) 容:(Ri)←((Ri))-1, i=0,1
字節數: 1
機器周期:1
6、DIV AB
指令名稱:無符號數除法指令;
指令代碼:84H
指令功能:A的內(nei) 容被B的內(nei) 容除。指令執行後,商存於(yu) A中,餘(yu) 數存於(yu) B中。
操作內(nei) 容:A←(A)/(B)的商
B←(A)/(B)的餘(yu) 數
字節數: 1
機器周期:4
影響標誌位:C被清0;若B=00H,除法無法進行,並使OV=1;否則OV=0。
7、DJNZ Rn,rel
指令名稱:寄存器減1條件轉移指令
指令代碼:D8H~DFH
指令功能:寄存器內(nei) 容減1。不為(wei) 0轉移;為(wei) 0順序執行。
操作內(nei) 容:Rn←(Rn)-l,n=0~7
若(Rn)≠0,則PC←(PC)+2+rel
若(Rn)=0,則PC←(PC)+2
字節數: 2
機器周期:2
8、DJNZ direct,rel
指令名稱:直接尋址單元減1條件轉移指令
指令代碼:D5H
指令功能:內(nei) 部RAM低128單元內(nei) 容減1。不為(wei) 0轉移;為(wei) 0順序執行。
操作內(nei) 容:direct←(direct)-1
若(direct)≠0,則PC←(PC)+3+rel
若(direct)=0,則PC←(PC)+3
字節數: 3
機器周期:2
MCS-51係列單片機指令以I開頭的指令有5條,分別為(wei) :
INC A INC Rn INC direct INC @Ri INC DPTR
1、INC A
指令名稱:累加器加1指令
指令代碼:04H
指令功能:累加器內(nei) 容加1
操作內(nei) 容:A←(A)+1
字節數: 1
機器周期:1
2、INC Rn
指令名稱:寄存器加1指令
指令代碼:08H~0FH
指令功能:寄存器內(nei) 容加1
操作內(nei) 容:Rn←(Rn)+1,n=0~7
字節數: 1
機器周期:1
3、INC direct
指令名稱:直接尋址單元加1指令
指令代碼:05H
指令功能:內(nei) 部BAM低128單元或專(zhuan) 用寄存器內(nei) 容加1
操作內(nei) 容:direct←(direct)+1
字節數: 2
機器周期:1
4、INC @Ri
指令名稱:間接尋址單元加1指令
指令代碼:06H~07H
指令功能:內(nei) 部RAM低128單元內(nei) 容加1
操作內(nei) 容:(Ri)←((Ri))+1;i=0,l
字節數: 1
機器周期:1
5、INC DPTR
指令名稱:16位數據指針加1指令
指令代碼:A3H
指令功能:數據指針寄存器DPTR內(nei) 容加1
操作內(nei) 容:DPTR←(DPTR)+1
字節數: 1
機器周期:2
MCS-51係列單片機指令以J開頭的指令有8條,分別為(wei) :
JB bit,rel JBC bit,rel JC rel JMP @A+DPTR JNB bit,rel JNC rel JNZ rel JZ rel
1、JB bit,rel
指令名稱:位條件轉移指令。
指令代碼:20H
指令功能:根據指定位的狀態,決(jue) 定程序是否轉移。若為(wei) 1則轉移;否則順序執行。
操作內(nei) 容:若(bit)=1,則PC←(PC)+3+rel
若(bit)≠1,則PC←(PC)+3
字節數: 3
機器周期:2
2、JBC bit,rel
指令名稱:位條件轉移清0指令
指令代碼:10H
指令功能:對指定位的狀態進行測試。若為(wei) 1,則把該位清0並進行轉移;否則程序順序執行。
操作內(nei) 容:若(bit)=1,則PC←(PC)+3+rel,bit←0
若(bit)≠1,則PC←(PC)+3
字節數: 3
機器周期:2
3、JC rel
指令名稱:累加位條件轉移指令
指令代碼:40H
指令功能:根據累加位(C)的狀態決(jue) 定程序是否轉移,若為(wei) 1則轉移,否則順序執行。
操作內(nei) 容:若(C)=1,則PC←(PC)+2+rel
若(C)≠1,則PC←(PC)+2
字節數: 2
機器周期:2
4、JMP @A+DPTR
指令名稱:無條件間接轉移指令
指令代碼:72H
指令功能:A內(nei) 容與(yu) DPTR內(nei) 容相加作為(wei) 轉移目的地址,進行程序轉移。
操作內(nei) 容:PC←(A)+(DPTR)
字節數: 1
機器周期;2
5、JNB bit,rel
指令名稱:位條件轉移指令
指令代碼:30H
指令功能:根據指定位的狀態,決(jue) 定程序是否轉移。若為(wei) 0則轉移;否則順序執行。
操作內(nei) 容:若(bit)=0,則PC←(PC)+3+rel
若(bit)≠0,則PC←(PC)+3
字節數: 3
機器周期:2
6、JNC rel
指令名稱:累加位條件轉移指令
指令代碼:50H
指令功能:根據累加位(C)的狀態決(jue) 定程序是否轉移。若為(wei) o則轉移;否則順序執行。
操作內(nei) 容:若(C)=0,則PC←(PC)+2+rel
若(C)≠0,則PC←(PC)+2
字節數: 2
機器周期:2
7、JNZ rel
指令名稱:判0轉移指令
指令代碼:70H
指令功能:累加位(A)的內(nei) 容不為(wei) 0,則程序轉移;否則程序順序執行。
操作內(nei) 容:若(A)≠0,則PC←(PC)+2+rel
若(A)=0,則PC←(PC)+2
字節數: 2
機器周期:2
8、JZ rel
指令名稱:判0轉移指令
指令代碼:60H
指令功能:累加位(A)的內(nei) 容為(wei) o,則程序轉移;否則程序順序執行。
操作內(nei) 容:若(A)=0,則PC←(PC)+2+rel
若(A)≠0,則PC←(PC)+2
字節數: 2
機器周期:2
MCS-51係列單片機指令以L開頭的指令就2條,分別為(wei) :
LCALL addr16 LJMP addrl6
1、LCALL addr16
指令名稱:長調用指令
指令代碼:12H
指令功能:按指令給定地址進行子程序調用
操作內(nei) 容:PC←(PC)+3
SP←(SP)+1
(SP)←(PC)7~0
SP←(SP)+1
(SP)←(PC)15~8
PC←addrl6
字節數: 3
機器周期:2
使用說明:在64KB的範圍內(nei) 調用子程序
2、LJMP addrl6
指令名稱:長轉移指令
指令代碼:02H
指令功能:使程序按指定地址進行無條件轉移
操作內(nei) 容:PC←addrl6
字節數: 3
機器周期:2
MCS-51係列單片機指令以M開頭的指令有24條,分別為(wei) :
MOV A,Rn MOV A,direct MOV A,@Ri MOV A,#data MOV Rn,A MOV Rn,direct MOV Rn,#data MOV direct,A MOV direct,Rn MOV direct2,direct1 MOV direct, @Ri MOV direct,#data MOV @Ri,A MOV @Ri,direct MOV @Ri,data MOV C,bit MOV bit,C MOV DPTR,#datal6 MOVC A,@A+DPTR MOVC A,@A+PC MOVX A,@Ri MOVX A,@DPTR MOVX @Ri,A MOVX @DPTR,A MUL AB
1、MOV A,Rn
指令名稱:寄存器數據傳(chuan) 送指令
指令代碼:E8H~EFH
指令功能:寄存器內(nei) 容送累加器
操作內(nei) 容:A←(Rn), n=0~7
字節數: 1
機器周期:1
2、MOV A,direct
指令名稱:直接尋址數據傳(chuan) 送指令
指令代碼:E5H
指令功能:內(nei) 部RAM低126單元或專(zhuan) 用寄存器內(nei) 容送累加器
操作內(nei) 容:A←(direct)
字節數: 2
機器周期:1
3、MOV A,@Ri
指令名稱:間接尋址數據傳(chuan) 送指令
指令代碼:E6H~E7H
指令功能:內(nei) 部RAM低128單元內(nei) 容送累加器
操作內(nei) 容:A←((Ri)), i=0,1
字節數: 1
機器周期:1
4、MOV A,#data
指令名稱:立即數據傳(chuan) 送指令
指令代碼:74H
指令功能:立即數送累加器
操作內(nei) 容:A←data
字節數: 2
機器周期:1
5、 MOV Rn,A
指令名稱:累加器數據傳(chuan) 送指令
指令代碼:F8H~FFH
指令功能:累加器內(nei) 容送寄存器
操作內(nei) 容:Rn←(A)
字節數: 1
機器周期:1
6、MOV Rn,direct
指令名稱:直接尋址數據傳(chuan) 送指令
指令代碼:A8H~AFH
指令功能:內(nei) 部RAM低128單元或專(zhuan) 用寄存器內(nei) 容送累加器
操作內(nei) 容:Rn←(direct),n=0~7
字節數: 2
機器周期:2
7、MOV Rn,#data
指令名稱:立即數據傳(chuan) 送指令
指令代碼:78H~7FH
指令功能:立即數送寄存器
操作內(nei) 容:Rn←data,n=0~7
字節數: 2
機器周期:1
8、MOV direct,A
指令名稱:累加器數據傳(chuan) 送指令
指令代碼:F5H
指令功能:累加器內(nei) 容送內(nei) 部RAM低128單元或專(zhuan) 用寄存器
操作內(nei) 容:direct←(A)
字節數: 2
機器周期:1
9、MOV direct,Rn
指令名稱:寄存器數據傳(chuan) 送指令
指令代碼:88H~8FH
指令功能:寄存器內(nei) 容送內(nei) 部RAM低128單元或專(zhuan) 用寄存器
操作內(nei) 容:direct←(Rn), n=0~7
字節數: 2
機器周期:2
10、MOV direct2,direct1
指令名稱:直接尋址數據傳(chuan) 送指令
指令代碼:85H
指令功能:內(nei) 部RAM低123單元或專(zhuan) 用寄存器之間的相互傳(chuan) 送
操作內(nei) 容:direct2←(direct1)
字節數: 3
機器周期:2
11、MOV direct, @Ri
指令名稱:間接尋址數據傳(chuan) 送指令
指令代碼:86H~87H
指令功能:內(nei) 部RAM低128單元內(nei) 容送內(nei) 部RAM低128單元或專(zhuan) 用寄存器
操作內(nei) 容:direct←((Ri)),i=0,1
字節數: 2
機器周期:2
12、MOV direct,#data
指令名稱:立即數傳(chuan) 送指令
指令代碼:75H
指令功能:立即數送內(nei) 部RAM低128單元或專(zhuan) 用寄存器
操作內(nei) 容:direct←data
字節數: 3
機器周期:2
13、MOV @Ri,A
指令名稱:累加器數據傳(chuan) 送指令
指令代碼:F6H~F7H
指令功能:累加器內(nei) 容送內(nei) 部RAM低128單元
操作內(nei) 容:(Ri)←(A),i=0,1
字節數: 1
機器周期:1
14、MOV @Ri,direct
指令名稱:直接尋址數據傳(chuan) 送指令
指令代碼:A6H~A7H
指令功能:內(nei) 部RAM低128單元或專(zhuan) 用寄存器內(nei) 容送內(nei) 部RAM低128單元
操作內(nei) 容:(Ri)←(direct), i=0,1
字節數: 2
機器周期:2
15、MOV @Ri,data
指令名稱:立即數傳(chuan) 送指令
指令代碼:76H~77H
指令功能:立即數送內(nei) 部RAM低128單元
操作內(nei) 容:(Ri)←data, i=0,1
字節數: 2
機器周期:1
16、MOV C,bit
指令名稱:位數據傳(chuan) 送指令
指令代碼:A2H
指令功能:內(nei) 部RAM可尋址位或專(zhuan) 用寄存器的位狀態送累加位C
操作內(nei) 容:C←(bit)
字節數: 2
機器周期:1
17、MOV bit,C
指令名稱:累加位數據傳(chuan) 送指令
指令代碼:92H
指令功能:累加器狀態送內(nei) 部RAM可尋址位或專(zhuan) 用寄存器的指定位
操作內(nei) 容:bit←(C)
字節數: 2
機器周期:2
18、MOV DPTR,#datal6
指令名稱:+六位數據傳(chuan) 送指令
指令代碼:90H
指令功能:十六位立即數送數據指針
操作內(nei) 容:DPH←datal5~8
DPL←data7~0
字節數: 3
機器周期:2
19、MOVC A,@A+DPTR
指令名稱:程序存儲(chu) 器讀指令
指令代碼:93H
指令功能:讀程序存儲(chu) 器單元內(nei) 容送累加器
操作內(nei) 容:A←((A)+(DPTR))
字節數: 1
機器周期:2
使用說明:變址寄存器A內(nei) 容加基址寄存器DPTR內(nei) 容時,低8位產(chan) 生的進位直接加到高位,不影響進位標誌。
20、MOVC A,@A+PC
指令名稱:程序存儲(chu) 器讀指令
指令代碼:83H
指令功能:讀程序存儲(chu) 器單元內(nei) 容送累加器
操作內(nei) 容:A←((A)+(PC))
字節數: 1
機器周期:2
使用說明:同MOVC A,@A+DPTR指令(序號70)
21、MOVX A,@Ri
指令名稱:寄存器間接尋址外部RAM讀指令
指令代碼:E2H~E3H
指令功能:讀外部RAM低256單元數據送累加器
字節數: 1
機器周期:2
22、MOVX A,@DPTR
指令名稱:數據指針間接尋址外部RAM讀指令
指令代碼:E0H
指令功能:讀外部RAM單元數據送累加器
操作內(nei) 容:A1←((DPTR))
字節數: 1
機器周期:2
23、MOVX @Ri,A
指令名稱:寄存器間接尋址外部RAM寫(xie) 指令
指令代碼:F2H~F3H
指令功能:把累加器內(nei) 容寫(xie) 入外部RAM低256單元
操作內(nei) 容:(Ri)←(A),i=1,0
字節數: 1
機器周期:2
24、MOVX @DPTR,A
指令名稱:數據指針間接尋址外部RAM寫(xie) 指令
指令代碼:F0H
指令功能:把累加器內(nei) 容寫(xie) 入外部RAM單元
操作內(nei) 容:(DPTR)←(A)
字節數: 1
機器周期:2
25、MUL AB
指令名稱:乘法指令
指令代碼:A4H
指令功能:實現8位無符號數乘法運算。兩(liang) 個(ge) 乘數分別放在累加器A和寄存器B中。乘積
為(wei) 16位,低8位在B中,高8位在A中。
操作內(nei) 容:AB←(A)×(B)
字節數: 1
機器周期:4
影響標誌位:進位標誌複位。若乘積大於(yu) 255,則OV標誌置位;否則複位。
MCS-51係列單片機指令以N開頭的指令隻有1條,就是:
1、NOP
指令名稱:空操作指令
指令代碼;00H
指令功能:不執行任何操作,常用於(yu) 產(chan) 生一個(ge) 機器周期的時間延遲。
操作內(nei) 容:PC←(PC)+l
字節數: 1
機器周期:1
MCS-51係列單片機指令以O開頭的指令有8條,分別為(wei) :
ORL A,Rn ORL A,direct ORL A,@Ri ORL A,#data ORL direct,A ORL direct,#data ORL C,bit ORL C,/bit
1、ORL A,Rn
指令名稱:邏輯或操作指令
指令代碼:48H~4FH
指令功能:累加器內(nei) 容與(yu) 寄存器內(nei) 容進行邏輯或操作
操作內(nei) 容:A1←(A)∨(Rn), n=0~7
字節數: 1
機器周期:1
2、ORL A,direct
指令名稱:邏輯或操作指令
指令代碼:45H
操作內(nei) 容:A←(A)∨(direct)
字節數: 2
機器周期:1
3、ORL A,@Ri
指令名稱:邏輯或操作指令
指令代碼:46H~47H
指令功能:累加器內(nei) 容與(yu) 內(nei) 部RAM低128單元內(nei) 容進行邏輯或操作
操作內(nei) 容:A←(A)∨((Ri)); i=0,1
字節數: 1
機器周期:1
4、ORL A,#data
指令名稱:邏輯或操作指令
指令代碼:44H
指令功能:累加器內(nei) 容與(yu) 立即數進行邏輯或操作
操作內(nei) 容:A←(A)∨data
字節數: 2
機器周期:1
5、ORL direct,A
指令名稱:邏輯或操作指令
指令代碼:42H
指令功能:內(nei) 部RAM低128單元或專(zhuan) 用寄存器內(nei) 容與(yu) 累加器內(nei) 容進行邏輯或操作
操作內(nei) 容:direct←(direct)∨(A)
字節數: 2
機器周期:1
6、ORL direct,#data
指令名稱:邏輯或操作指令
指令代碼:43H
指令功能:內(nei) 部RAM低128單元或專(zhuan) 用寄存器內(nei) 容與(yu) 立即數進行邏輯或操作。
操作內(nei) 容:direct←(direct)∨data
字節數: 3
機器周期:2
7、ORL C,bit
指令名稱:位邏輯或操作指令
指令代碼:72H
指令功能:累加位C狀態與(yu) 內(nei) 部RAM可尋址位或專(zhuan) 用寄存器指定位進行邏輯或操作
操作內(nei) 容:C←(C)∨(bit)
字節數: 2
機器周期:2
8、ORL C,/bit
指令名稱:位反邏輯或操作指令
指令代碼:A0H
指令功能:累加位C狀態與(yu) 內(nei) 部RAM可尋址位或專(zhuan) 用寄存器指定位的反進行邏輯或操作
操作內(nei) 容:C←(C)∨(bit非)
字節數: 2
機器周期:2
使用說明:指定位的狀態取反後進行邏輯或操作,但並不改變指定位的原來狀態。
MCS-51係列單片機指令以P開頭的指令有2條,分別為(wei) :
POP direct PUSH direct
1、POP direct
指令名稱:出棧指令
指令代碼:D0H
指令功能:堆棧棧頂單元的內(nei) 容送內(nei) 部RAM低128單元或專(zhuan) 用寄存器
操作內(nei) 容:direct←(SP)
SP←(SP)-1
字節數: 2
機器周期:2
2、PUSH direct
指令名稱:進棧指令
指令代碼:C0
指令功能:內(nei) 部RAM低128單元或專(zhuan) 用寄存器內(nei) 容送堆棧棧頂單元
操作內(nei) 容:SP←(SP)+1
(SP)←(direct)
字節數: 2
機器周期:2
MCS-51係列單片機指令以R開頭的指令有6條,分別為(wei) :
RET RETI RL A RLC A RR A RRC A
1、RET
指令名稱:子程序返回指令
指令代碼:22H
指令功能:子程序返回
操作內(nei) 容:PC15~8←((SP))
SP←(SP)-1
PC7~0←((SP))
SP←(SP)-1
字節數: 1
機器周期:2
2、RETI
指令名稱:中斷返回指令
指令代碼:32H
指令功能:中斷服務程序返回
操作內(nei) 容’:PC15?/FONT>8←((SP))
SP←(SP)-l
PC7~0←((SP))
SP←(SP)-1
字節數: 1
機器周期:2
3、RL A
指令名稱:循環左移指令
指令代碼:23H
指令功能:累加器內(nei) 容循環左移一位
操作內(nei) 容:An+1←(An); n=0~6
A0←(A7)
字節數: 1
機器周期:1
4、RLC A
指令名稱:帶進位循環左移指令
指令代碼:33H
指令功能:累加器內(nei) 容連同進位標誌位循環左移一位
操作內(nei) 容:An-1←(An); n=0~6
A0←(C)
C←(A7)
字節數: 1
機器周期:1
5、RR A
指令名稱:循環右移指令
指令代碼:03H
指令功能:累加器內(nei) 容循環右移一位
操作內(nei) 容:An←(An+1);n=0~6
A7←(A0)
字節數: 1
機器周期:1
6、RRC A
指令名稱:帶進位循環右移指令
指令代碼:13H
指令功能:累加器內(nei) 容連同進位標誌位循環右移一位
操作內(nei) 容:An←(An+1);n=0~6
A7←(C)
C←(A0)
字節數: 1
機器周期:1
MCS-51係列單片機指令以S開頭的指令有8條,分別為(wei) :
SETB c SETB bit SJMP rel SUBB A,Rn SUBB A,direct SUBB A,@Ri SUBB A,#data SWAP A
1、SETB c
指令名稱:進位標誌置位指令
指令代碼:D.H
指令功能:進位標誌位置位
操作內(nei) 容:C←1
字節數: 1
機器周期:1
2、SETB bit
指令名稱:直接尋址位置位指令
指令代碼:D2H
指令功能:內(nei) 部RAM可尋址位或專(zhuan) 用寄存器指定位置位
操作內(nei) 容:bit←1
字節數: 2
機器周期:1
3、SJMP rel
指令名稱:短轉移指令
指令代碼:80H
指令功能:按指令提供的偏移量計算轉移的目的地址,實現程序的無條件相對轉移;
操作內(nei) 容:PC←(PC)+2
PC←(PC)+rel
字節數: 2
機器周期:2
使用說明:偏移量是8位二進製補碼數,可實現程序的雙向轉移,其轉移範圍是(PC一26)一(PC+129)。其中PC值為(wei) 本指令的地址。
4、SUBB A,Rn
指令名稱:寄存器尋址帶進位減法指令
指令代碼:98H~9FH
指令功能:累加器內(nei) 容減寄存器內(nei) 容和進位標誌位內(nei) 容
操作內(nei) 容:A←(A)-(Rn)-(C); n=0~7
字節數: 1
機器周期:1
影響標誌位:當夠減時,進位標誌位複位;不夠減時,進位標誌置位。當位3發生借位,AC置位;否則AC複位。當位6及位7不同時發生借位時,OV置位;否則OV複位。
5、SUBB A,direct
指令名稱:直接尋址帶進位減法指令
指令代碼:95H
指令功能:累加器內(nei) 容減內(nei) 部RAM低128單元或專(zhuan) 用寄存器和進位標誌位內(nei) 容
操作內(nei) 容:A←(A)-(diret)-(C)
字節數: 2
機器周期:1
影響標誌位:同SUBB A,Rn指令(序號97)
6、SUBB A,@Ri
指令名稱:間接尋址帶進位減法指令
指令代碼:96H~97H
指令功能:累加器內(nei) 容減內(nei) 部RAM低128單元內(nei) 容及進位標誌位內(nei) 容
操作內(nei) 容:A←(A)-((Ri))-(C);i=0,1
字節數: 1
機器周期:1
影響標誌位:同SUBB A,Rn指令(序號97)
7、SUBB A,#data
指令名稱:立即數帶進位減法指令
指令代碼:94H
指令功能:累加器內(nei) 容減立即數及進位標誌內(nei) 容
操作內(nei) 容:A←(A)-data-(C)
字節數: 2
機器周期:1
影響標誌位:同SUBB A,Rn指令(序號97)
8、SWAP A
指令名稱:累加器高低半字節交換指令
指令代碼:C4H
指令功能:累加器內(nei) 容的高4位與(yu) 低4位交換
操作內(nei) 容:(A)7?/FONT>4交換(A)3?/FONT>0
字節數: 1
機器周期:1
MCS-51係列單片機指令以X開頭的指令有10條,分別為(wei) :
XCH A,Rn XCH A,direct XCH A,@Ri XCHD A,@Ri XRL A,Rn XRL A,direct XRL A,@Ri XRL A,#data XRL direct,A XRL direct,#data
1、XCH A,Rn
指令名稱:寄存器尋址字節交換指令
指令代碼:C8H~CFH
指令功能:寄存器尋址字節
操作內(nei) 容:(A)交換(Rn);n=0~7
字節數: 1
機器周期:1
2、XCH A,direct
指令名稱:直接尋址字節交換指令
指令代碼:C5H
指令功能:累加器內(nei) 容與(yu) 內(nei) 部RAM低128單元或專(zhuan) 用寄存器內(nei) 容交換
操作內(nei) 容:(A)交換(direct)
字節數: 2
機器周期:1
3、XCH A,@Ri
指令名稱:間接尋址字節交換指令
指令代碼:C6H~C7H
指令功能:累加器內(nei) 容與(yu) 內(nei) 部RAM低128單元內(nei) 容交換
操作內(nei) 容:(A)交換((Ri)); i=0,1
字節數: 1
機器周期:1
4、XCHD A,@Ri
指令名稱:半字節交換指令
指令代碼:D6H~D7H
指令功能:累加器內(nei) 容低4位與(yu) 內(nei) 部RAM低128單元低4位交換
操作內(nei) 容:(A)3~0交換((Ri))3~0;i=0,1
字節數: 1
機器周期:1
5、XRL A,Rn
指令名稱;邏輯異或操作指令
指令代碼:68H~6FH
指令功能:累加器內(nei) 容與(yu) 寄存器內(nei) 容進行邏輯異或操作
操作內(nei) 容:A←(A)異或(Rn); n=0~7
字節數: 1
機器周期:1
6、XRL A,direct
指令名稱:邏輯異或操作指令
指令代碼:65H
指令功能:累加器內(nei) 容與(yu) 內(nei) 部RAM低128單元或專(zhuan) 用寄存器內(nei) 容進行邏輯異或操作
操作內(nei) 容:A←(A)異或(direct)
字節數: 2
機器周期:1
7、XRL A,@Ri
指令名稱:邏輯異或指令
指令代碼:66H~67H
指令功能:累加器與(yu) 內(nei) 部RAM低128單元內(nei) 容進行邏輯異或操作
操作內(nei) 容:A←(A)異或((Ri)); i=0,1
字節數: 1
機器周期:1
8、XRL A,#data
指令名稱:邏輯異或指令
指令代碼:64H
指令功能:累加器內(nei) 容與(yu) 立即數進行邏輯異或操作
操作內(nei) 容:A1?/FONT>(A)異或data
字節數: 2
機器周期:1
9、XRL direct,A
指令名稱:邏輯異或操作指令
指令代碼:62H
指令功能:累加器內(nei) 容與(yu) 內(nei) 部RAM低128單元或專(zhuan) 用寄存器內(nei) 容進行邏輯異或操作
操作內(nei) 容:direct一(direct)異或(A)
字節數: 2
機器周期:1
10、XRL direct,#data
指令名稱:邏輯異或操作指令
指令代碼:63H
指令功能:內(nei) 部RAM低128單元或專(zhuan) 用寄存器內(nei) 容與(yu) 立即數進行邏輯異或操作
操作內(nei) 容:direct←(direct)異或data
字節數: 3
機器周期:2