这篇博客的内容是指令系统的另一部分,上部分请看上篇博客。单片机指令系统(1)
目录
三、逻辑操作类指令
1 逻辑“与”指令
ANL A,Rn ;(A)^(Rn)->A
ANL A,dir ;(A)^(dir)->A
ANL A,@Ri ;(A)^((Ri))->A
ANL A,#data ;(A)^data->A
ANL dir,A ;(dir)^(A)->dir
ANL dir,#data ;(dir)^data->dir
2 逻辑“或”指令
ORL A,Rn ;(A)V(Rn)->A
ORL A,dir ;(A)V(dir)->A
ORL A,@Ri ;(A)V((Ri))->A
ORL A,#data ;(A)Vdata->A
ORL dir,A ;(dir)V(A)->dir
ORL dir,#data ;(dir)Vdata->dir
3 逻辑“异或”指令
;此处的+表示异或的符号
XRL A,Rn ;(A)+(Rn)->A
XRL A,dir ;(A)+(dir)->A
XRL A,@Ri ;(A)+((Ri))->A
XRL A,#data ;(A)+data->A
XRL dir,A ;(dir)+(A)->dir
XRL dir,#data ;(dir)+data->dir
4 循环移位指令
RL A ;循环左移
RR A ;循环右移
RLC A ;带进位位CY循环左移
RRC A ;带进位位CY循环右移
5 取反指令
CPL A ;把A取反的值放入A
6 清0指令
CLR A ;0->A
四、控制转移指令
1 无条件转移指令
LJMP addr16 ;addr16->PC
AJMP addr11 ;(PC)+2->PC,addr11->PC.10~PC.0
SJMP rel ;(PC)+2+rel->PC
2 条件转移指令
JZ rel ;(A)=0:(PC)+2+rel->PC
;(A)!=0:(PC)+2->PC
JNZ REL ;(A)!=0:(PC)+2+rel->PC
;(A)=0:(PC)+2->PC
CJNE A,dir,rel ;(A)=(dir):(PC)+3->PC,0->C
;(A)>(dir):(PC)+3+rel->PC,0->C
;(A)<(dir):(PC)+3+rel->PC,1->C
CJNE A,#data,rel ;(A)=data:(PC)+3->PC,0->C
;(A)>data:(PC)+3+rel->PC,0->C
;(A)<data:(PC)+3+rel->PC,1->C
CJNE Rn,#data,rel ;(Rn)=data:(PC)+3->PC,0->C
;(Rn)>data:(PC)+3+rel->PC,0->C
;(Rn)<data:(PC)+3+rel->PC,1->C
CJNE @Ri,#data,rel ;((Ri))=data:(PC)+3->PC,0->C
;((Ri))>data:(PC)+3+rel->PC,0->C
;((Ri))<data:(PC)+3+rel->PC,1->C
DJNZ Rn,rel ;(Rn)-1->Rn,
;Rn!=0:(PC)+2+rel->PC
;Rn =0:(PC)+2->PC
DJNZ dir,rel ;(dir)-1->dir
;(dir)!=0:(PC)+3+rel->PC
;(dir) =0:(PC)+3->PC
3 间接转移指令
JMP @A+DPTR ;(A)+(DPTR)->PC
4 调用子程序及返回指令
LCALL addr16 ;(PC)+3->PC,(SP)+1->SP
;(PC.7~PC.0)->(SP),(SP)+1->SP
;(PC.15~PC.8)->(SP),addr16->PC
ACALL addr11 ;(PC)+2->PC,(SP)+1->SP
;(PC.7~PC.0)->(SP),(SP)+1->SP
;(PC.15~PC.8)->(SP),addr11->PC.10~PC.0
RET ;((SP))->PC.15~PC.8,(SP)-1->SP
;((SP))->PC.7~PC.0,(SP)-1->SP
RETI ;同时清除优先级转态触发器
5 空操作指令
NOP ;单字节指令产生1个机器周期
五、位操作类指令
1 位数据传送指令
MOV C,bit ;(bit)->C
MOV bit,C ;(C)->bit
2 位修正指令
CLR C ;0->C
CLR bit ;0->bit
CPL C ;进位位取反
CPL bit; ;位取反
SETB C; ;1->C
SETB bit ;1->bit
3 位逻辑运算指令
ANL C,bit ;(C)^(bit)->C
ANL C,/bit ;(C)^(/bit)->C ,/表示取反
ORL C,bit ;(C)V(bit)->C
ORL C,/bit ;(C)V(/bit)->c
4 判位转移指令
JC rel ;(C)=1,(PC)+2+rel->PC
;(C)=0,(PC)+2->PC
JNC rel ;(C)=0,(PC)+2+rel->PC
;(C)=1,(PC)+2->PC
JB bit,rel ;(bit)=1,(PC)+3+rel->PC
;(bit)=0,(PC)+3->PC
JNB bit,rel ;(bit)=0,(PC)+3+rel->PC
;(bit)=1,(PC)+3->PC
JBC bit,rel ;(bit)=1,(PC)+3+rel->PC,0->bit
;(bit)=0,(PC)+3->PC
希望这篇博客对你学习单片机指令有用!
(by:CHENYUNHE 2018-12-7 https://blog.csdn.net/CHENYUNHE/ )