mcs-51 指令速查表
類(lèi)別
指令格式
功能簡(jiǎn)述
字節(jié)數(shù)
周期
數(shù)據(jù)傳送類(lèi)指令期
MOV A, Rn
寄存器送累加器
1
1
MOV Rn,A
累加器送寄存器
1
1
MOV A, @Ri
內(nèi)部RAM單元送累加器
1
1
MOV @Ri, A
累加器送內(nèi)部RAM單元
1
1
MOV A, #data
立即數(shù)送累加器
2
1
MOV A, direct
直接尋址單元送累加器
2
1
MOV direct, A
累加器送直接尋址單元
2
1
MOV Rn,#data
立即數(shù)送寄存器
2
1
MOV direct, #data
立即數(shù)送直接尋址單元
3
2
MOV @Ri, #data
立即數(shù)送內(nèi)部RAM單元
2
1
MOV direct, Rn
寄存器送直接尋址單元
2
2
MOV Rn, direct
直接尋址單元送寄存器
2
2
MOV direct, @Ri
內(nèi)部RAM單元送直接尋址單元
2
2
MOV @Ri, direct
直接尋址單元送內(nèi)部RAM單元
2
2
MOV direct2,direct1
直接尋址單元送直接尋址單元
3
2
MOV DPTR, #data16
16位立即數(shù)送數(shù)據(jù)指針
3
2
MOVX A, @Ri
外部RAM單元送累加器(8位地址)
1
2
MOVX @Ri, A
累加器送外部RAM單元(8位地址)
1
2
MOVX A, @DPTR
外部RAM單元送累加器(16位地址)
1
2
MOVX @DPTR, A
累加器送外部RAM單元(16位地址)
1
2
MOVC A, @A+DPTR
查表數(shù)據(jù)送累加器(DPTR為基址)
1
2
MOVC A, @A+PC
查表數(shù)據(jù)送累加器(PC為基址)
1
2
算術(shù)運(yùn)算類(lèi)指令
XCH A, Rn
累加器與寄存器交換
1
1
XCH A, @Ri
累加器與內(nèi)部RAM單元交換
1
1
XCHD A, direct
累加器與直接尋址單元交換
2
1
XCHD A, @Ri
累加器與內(nèi)部RAM單元低4位交換
1
1
SWAP A
累加器高4位與低4位交換
1
1
POP direct
棧頂彈出指令直接尋址單元
2
2
PUSH direct
直接尋址單元壓入棧頂
2
2
ADD A, Rn
累加器加寄存器
1
1
ADD A, @Ri
累加器加內(nèi)部RAM單元
1
1
ADD A, direct
累加器加直接尋址單元
2
1
ADD A, #data
累加器加立即數(shù)
2
1
ADDC A, Rn
累加器加寄存器和進(jìn)位標(biāo)志
1
1
ADDC A, @Ri
累加器加內(nèi)部RAM單元和進(jìn)位標(biāo)志
1
1
ADDC A, #data
累加器加立即數(shù)和進(jìn)位標(biāo)志
2
1
ADDC A, direct
累加器加直接尋址單元和進(jìn)位標(biāo)志
2
1
指令格式
功能簡(jiǎn)述
字節(jié)數(shù)
周期
INC A
累加器加1
1
1
INC Rn
寄存器加1
1
1
INC direct
直接尋址單元加1
2
1
INC @Ri
內(nèi)部RAM單元加1
1
1
INC DPTR
數(shù)據(jù)指針加1
1
2
DA A
十進(jìn)制調(diào)整
1
1
SUBB A, Rn
累加器減寄存器和進(jìn)位標(biāo)志
1
1
SUBB A, @Ri
累加器減內(nèi)部RAM單元和進(jìn)位標(biāo)志
1
1
SUBB A, #data
累加器減立即數(shù)和進(jìn)位標(biāo)志
2
1
SUBB A, direct
累加器減直接尋址單元和進(jìn)位標(biāo)志
2
1
DEC A
累加器減1
1
1
DEC Rn
寄存器減1
1
1
DEC @Ri
內(nèi)部RAM單元減1
1
1
DEC direct
直接尋址單元減1
2
1
MUL AB
累加器乘寄存器B
1
4
DIV AB
累加器除以寄存器B
1
4
邏輯運(yùn)算類(lèi)指令
ANL A, Rn
累加器與寄存器
1
1
ANL A, @Ri
累加器與內(nèi)部RAM單元
1
1
ANL A, #data
累加器與立即數(shù)
2
1
ANL A, direct
累加器與直接尋址單元
2
1
ANL direct, A
直接尋址單元與累加器
2
1
ANL direct, #data
直接尋址單元與立即數(shù)
3
1
ORL A, Rn
累加器或寄存器
1
1
ORL A,@Ri
累加器或內(nèi)部RAM單元
1
1
ORL A,#data
累加器或立即數(shù)
2
1
ORL A,direct
累加器或直接尋址單元
2
1
ORL direct, A
直接尋址單元或累加器
2
1
ORL direct, #data
直接尋址單元或立即數(shù)
3
1
XRL A, Rn
累加器異或寄存器
1
1
XRL A,@Ri
累加器異或內(nèi)部RAM單元
1
1
XRL A,#data
累加器異或立即數(shù)
2
1
XRL A,direct
累加器異或直接尋址單元
2
1
XRL direct, A
直接尋址單元異或累加器
2
1
XRL direct, #data
直接尋址單元異或立即數(shù)
3
2
RL A
累加器左循環(huán)移位
1
1
RLC A
累加器連進(jìn)位標(biāo)志左循環(huán)移位
1
1
RR A
累加器右循環(huán)移位
1
1
RRC A
累加器連進(jìn)位標(biāo)志右循環(huán)移位
1
1
CPL A
累加器取反
1
1
指令格式
功能簡(jiǎn)述
字節(jié)數(shù)
周期
CLR A
累加器清零
1
1
控制轉(zhuǎn)移類(lèi)指令
ACCALL addr11
2KB范圍內(nèi)絕對(duì)調(diào)用
2
2
AJMP addr11
2KB范圍內(nèi)絕對(duì)轉(zhuǎn)移
2
2
LCALL addr16
2KB范圍內(nèi)長(zhǎng)調(diào)用
3
2
LJMP addr16
2KB范圍內(nèi)長(zhǎng)轉(zhuǎn)移
3
2
SJMP rel
相對(duì)短轉(zhuǎn)移
2
2
JMP @A+DPTR
相對(duì)長(zhǎng)轉(zhuǎn)移
1
2
RET
子程序返回
1
2
RET1
中斷返回
1
2
JZ rel
累加器為零轉(zhuǎn)移
2
2
JNZ rel
累加器非零轉(zhuǎn)移
2
2
CJNE A, #data, rel
累加器與立即數(shù)不等轉(zhuǎn)移
3
2
CJNE A, direct, rel
累加器與直接尋址單元不等轉(zhuǎn)移
3
2
CJNE Rn,#data, rel
寄存器與立即數(shù)不等轉(zhuǎn)移
3
2
CJNE @Ri, #data, rel
RAM單元與立即數(shù)不等轉(zhuǎn)移
3
2
DJNZ Rn, rel
寄存器減1不為零轉(zhuǎn)移
2
2
DJNZ direct, rel
直接尋址單元減1不為零轉(zhuǎn)移
3
2
布爾操作類(lèi)指令
NOP
空操作
1
1
MOV C, bit
直接尋址位送C
2
1
MOV bit, C
C送直接尋址位
2
1
CLR C
C清零
1
1
CLR bit
直接尋址位清零
2
1
CPL C
C取反
1
1
CPL bit
直接尋址位取反
2
1
SETB C
C置位
1
1
SETB bit
直接尋址位置位
2
1
ANL C, bit
C邏輯與直接尋址位
2
2
ANL C, /bit
C邏輯與直接尋址位的反
2
2
ORL C, bit
C邏輯或直接尋址位
2
2
ORL C, /bit
C邏輯或直接尋址位的反
2
2
JC rel
C為1轉(zhuǎn)移
2
2
JNC rel
C為零轉(zhuǎn)移
2
2
JB bit,rel
直接尋址位為1轉(zhuǎn)移
3
2
JNB bit,rel
直接尋址為0轉(zhuǎn)移
3
2
JBC bit,rel
直接尋址位為1轉(zhuǎn)移并清該位
3
2