第3章 80C51单片机指令系统
考试知识点:
1、寻址方式
(1)立即寻址(#data,#data16)例:MOV A,#00H
(2)直接寻址(direct)内部RAM:00~7FH、特殊功能寄存器 例:MOV A,00H
(3)寄存器寻址(A、B、Rn、DPTR)
(4)寄存器间接寻址(@Ri、@DPTR)例:MOVX A,@DPTR
(5)变址寻址(@A+DPTR,@A+PC)例:MOVC A,@A+DPTR
(6)位寻址(bit)20~2FH:00~7FH、特殊功能寄存器 例:MOV C,00H
(7)相对寻址(rel)例:JZ rel
2、数据传送类指令
(1)内部RAM数据传送指令
MOV 目的,源;目的→源
交换指令:
XCH A,direct/Rn/@Ri;A和源交换
XCHD A,@Ri;只换低4位
SWAP A;A的高低4位交换
注意:A作目的操作数会影响P。
PUSH direct
POP direct
(2)外部RAM数据传送指令
MOVX A,@Ri/@DPTR;外部地址内容→A
MOVX@Ri/@DPTR,A;A→外部地址内容
(3)ROM数据传送指令
MOVC A,@A+DPTR/@A+PC;查表指令
3、算术运算指令
(1)加法指令
ADD/ADDC A,#data/ direct/ Rn/@Ri;会影响CY、AC、OV、P
INC A/ direct/ Rn/@Ri/DPTR;加1,P
DA A;十进制调整,大于9加6
(2)减法指令
SUBB A,#data/ direct/ Rn/@Ri;会影响CY、AC、OV、P
DEC A/ direct/ Rn/@Ri;减1
(3)乘除指令
MUL AB;(A)*(B)→BA,会影响CY=0,OV,P
DIV AB;(A)/(B)的商→A,余数→B
4、逻辑运算及移动指令
(1)逻辑运算指令
ANL/ORL/XRL A,#data/ direct/ Rn/@Ri
ANL/ORL/XRL direct,A/#data
与→清0,或→置1,异或→取反
CLR/CPL A;清0和取反
(2)移位指令
RL/RR/RLC/RRC A
注意:每左移一位相当于乘2,每右移一位相当于除2,带进位的移会影响CY和P。
5、控制转移类指令
(1)无条件转移指令
LJMP addr16;addr16→PC,64KB
AJMP addr11;(PC)+2→PC,addr11→PC10~0,2KB
SJMP rel;(PC)+2+rel→PC,256B
JMP @A+DPTR;(A)+(DPTR)→PC,64KB
(2)条件转移指令
累加器A判0转移指令
JZ rel;A为0
JNZ rel;A不为0
比较不相等转移指令
CJNE A/Rn/@Ri,#data,rel
CJNE A,direct,rel
注意:第一操作数和第二操作数不相等,程序转移,若第一大于第二,CY=0,第一小于第二,CY=1。第一操作数和第二操作数相等,程序顺序执行,CY=0。
减1不为0转移指令
DJNZ Rn/direct,rel;(Rn/direct)-1不为0,程序转移。
(3)调用和返回指令
LCALL addr16;(PC)+3→PC,先入低8位,再入高8位,addr16→PC
ACALL addr11;(PC)+2→PC,先入低8位,再入高8位,addr11→PC10~0
RET;先出高8位,再出低8位
6、位操作类指令
(1)位传送指令
MOV C,bit
MOV bit,C
(2)位赋值指令
CLR C/bit