MCS-51指令操作码(按功能-操作码-OPCODE 来分类)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MCS-51 指令操作码(按功能-操作码-OPCODE 来分类)
MCS-51 指令操系统
本指令表是根据指令的操作码和指令的操作性质,将指令分为 3 类:
(源自编程的思路出发:操作码、功能、Opcede)
数据传送类、运算类和控制转移类指令。
数据传送类指令:
MOV 类:MOV MOVX MOVC 栈类:PUSH POP 位传类(置零置一类):SETB CLR 交换类:XCH XCHD SWAP
1. MOV 类:说明 MOV 指令搭配的种类很多,仅要记住不允许的情况,这样学习能减轻
记忆负担。
MOV 不允许的“的”与“源”的搭配:
(1)16 位地址的 PROM 和外部 XRAM 的传送不能用 MOV 指令,这两个区域的数据
传送必须用 MOVC 和 MOVX 指令。
(2)不允许“源”与“的”中都出现 Rn。Mov Rn,Rn; Mov Rn,@Ri ;Mov @Ri,Rn ;Mov
@Ri,@Ri 都不允许的搭配。(n=0~7 , i=0、1)
(3)不允许 Mov Bit,Bit 搭配,Bit 间的传送必须通过 C 进行中转。
(4)MOV 对 16 位单元操作,仅允许对 Dptr 赋值立即数,例:Mov Dptr,#1234H
(5)其他无意义操作,Mov C,C ;Mov A,A 都正确。 MOVX 指令:
@Ri INC Dptr
MUL AB DIV DA A
不改 C 增减运算 INC DEC
BCD 调整 DA
2.逻辑运算类指令
#DATA
ANL
Direct
ORL A, Rn
XRL
@Ri
#DATA
Direct,
A
A
CPL C
Bit
3.以为运算类指令
RR RRC A RL RLC
控制转移类指令:
无条件转移类:SJMP AJMP LJMP JMP NOP (复位) 子程序调用与返回类:ACALL LCALL RET RETI (各种中断) 普通条件转移类:JZ JNZ JC JNC JB JNB 特殊条件转移类:CJNE DJNZ JBC
@Dptr
MOVX A,
@Ri
@Dptr
MOVX
,A
@Ri
MOVC 指令: @A+DPTR
MOVC A, @A+PC
2. 栈类 PUSH Direct ;进栈指令 POP Direct ;出栈指令
3ቤተ መጻሕፍቲ ባይዱ 位传类 C
SETB Bit C
CLR Bit A
4. 交换类 A
XCH A, Direct Rn @Ri
1. 无条件转移类 SJMP Rel AJMP addr11 LJMP addr16 JMP @A+DPTR NOP
2. 子程序调用与返回类 ACALL addr11 LCALL addr16 RET TETI
3. 普通条件转移类 JZ Rel JNZ Rel JC Rel JNC Rel JB Bit, Rel JNB Bit, Rel
XCHD A,@Ri
SWAP A
运算类指令:
运算类型 加 减 乘 除
逻辑:CPL RL
不带 C 进位 ADD
MUL DIV ANL ORL RLC RR
XRL RRC
带 C 进位 ADDC SUBB
1.算术运算类指令
#DATA
ADD
Direct
ADDC A, Rn
SUBB
@Ri
A INC Ditect DEC Rn
4. 特殊条件转移类
Direct,Rel A, #DATA,Rel
CJNE @Ri,#DATA,Rel Rn,#DATA,Rel
Rn,Rel DJNZ
Direct,Rel
JBC Bit,Rel
MCS-51 指令操系统
本指令表是根据指令的操作码和指令的操作性质,将指令分为 3 类:
(源自编程的思路出发:操作码、功能、Opcede)
数据传送类、运算类和控制转移类指令。
数据传送类指令:
MOV 类:MOV MOVX MOVC 栈类:PUSH POP 位传类(置零置一类):SETB CLR 交换类:XCH XCHD SWAP
1. MOV 类:说明 MOV 指令搭配的种类很多,仅要记住不允许的情况,这样学习能减轻
记忆负担。
MOV 不允许的“的”与“源”的搭配:
(1)16 位地址的 PROM 和外部 XRAM 的传送不能用 MOV 指令,这两个区域的数据
传送必须用 MOVC 和 MOVX 指令。
(2)不允许“源”与“的”中都出现 Rn。Mov Rn,Rn; Mov Rn,@Ri ;Mov @Ri,Rn ;Mov
@Ri,@Ri 都不允许的搭配。(n=0~7 , i=0、1)
(3)不允许 Mov Bit,Bit 搭配,Bit 间的传送必须通过 C 进行中转。
(4)MOV 对 16 位单元操作,仅允许对 Dptr 赋值立即数,例:Mov Dptr,#1234H
(5)其他无意义操作,Mov C,C ;Mov A,A 都正确。 MOVX 指令:
@Ri INC Dptr
MUL AB DIV DA A
不改 C 增减运算 INC DEC
BCD 调整 DA
2.逻辑运算类指令
#DATA
ANL
Direct
ORL A, Rn
XRL
@Ri
#DATA
Direct,
A
A
CPL C
Bit
3.以为运算类指令
RR RRC A RL RLC
控制转移类指令:
无条件转移类:SJMP AJMP LJMP JMP NOP (复位) 子程序调用与返回类:ACALL LCALL RET RETI (各种中断) 普通条件转移类:JZ JNZ JC JNC JB JNB 特殊条件转移类:CJNE DJNZ JBC
@Dptr
MOVX A,
@Ri
@Dptr
MOVX
,A
@Ri
MOVC 指令: @A+DPTR
MOVC A, @A+PC
2. 栈类 PUSH Direct ;进栈指令 POP Direct ;出栈指令
3ቤተ መጻሕፍቲ ባይዱ 位传类 C
SETB Bit C
CLR Bit A
4. 交换类 A
XCH A, Direct Rn @Ri
1. 无条件转移类 SJMP Rel AJMP addr11 LJMP addr16 JMP @A+DPTR NOP
2. 子程序调用与返回类 ACALL addr11 LCALL addr16 RET TETI
3. 普通条件转移类 JZ Rel JNZ Rel JC Rel JNC Rel JB Bit, Rel JNB Bit, Rel
XCHD A,@Ri
SWAP A
运算类指令:
运算类型 加 减 乘 除
逻辑:CPL RL
不带 C 进位 ADD
MUL DIV ANL ORL RLC RR
XRL RRC
带 C 进位 ADDC SUBB
1.算术运算类指令
#DATA
ADD
Direct
ADDC A, Rn
SUBB
@Ri
A INC Ditect DEC Rn
4. 特殊条件转移类
Direct,Rel A, #DATA,Rel
CJNE @Ri,#DATA,Rel Rn,#DATA,Rel
Rn,Rel DJNZ
Direct,Rel
JBC Bit,Rel