单片机的指令
- 格式:doc
- 大小:42.50 KB
- 文档页数:3
一、数据传送类指令
1、向累加器A的传送
MOV A,Rn ;(A)←(Rn)
MOV A,direct ;(A)← (direct)
MOV A,@Ri ; (A)←((Ri))
MOV A,#data ; (A)←data
2、向通用寄存器传送
MOV Rn,A ;(Rn)←(A)
MOV Rn,direct ;(Rn)←(direct)
MOV Rn,#data ;(Rn)←data
3、向直接地址传送
MOV direct,A ;(direct)←(A)
MOV direct,Rn ;(direct)←(Rn)
MOV direct1,direct2 ;(direct)←(direct)
MOV direct,@Ri ;(direct)←((Ri))
MOV direct,#data ;(direct)←data
4、间址传送
MOV @Ri,A ;((Ri))←(A)
MOV @Ri,direct ;((Ri))←(direct)
MOV @Ri,#data ;((Ri))←data
5.十六位数的传递指令 MOV DPTR,#data16 ;(DPTR)←data16
6、累加器A与片外RAM之间的数据传递类指令
MOVX A,@Ri ;(A)←((Ri))
MOVX A,@DPTR ;(A)←((DPTR))
MOVX @Ri,A ;((Ri))←(A)
MOVX @DPTR,A ;((DPTR))←(A)
7、程序存储器向累加器A传送指令
MOVC A,@A+DPTR ;(A)←((A)+(DPTR))
MOVC A,@A+PC ;(A)←((A)+(PC))
8、堆栈操作
PUSH direct ;(sp)←(sp)+1,((sp))←(direct)
POP direct ;(direct)←((sp)),(sp)←(sp)-1
9、字节交换指令
XCH A,Rn ;(A) ←→(Rn)
XCH A,direct ;(A) ←→(direct)
XCH A,@Ri ;(A) ←((Ri))
10、半字节交换指令
XCHD A,@Ri 二、算术运算类指令
1、不带进位位的加法指令
ADD A,Rn
;(A)←(A)+(Rn)
ADD A,direct ;(A)←(A)+(direct)
ADD A,@Ri ;(A)←(A)+((Ri))
ADD A,#data ;(A)←(A)+data
注:加法减法指令影响Ac,Cy,OV
2、带进位加法
ADDC A,Rn ;(A)←(A)+(Rn)+(C)
ADDC A,direct ;(A)←(A)+(direct)+(C)
ADDC A,@Ri
;(A)←(A)+((Ri))+(C)
ADDC A,#data ; (A)←(A)+data
+(C)
3、带借位的减法指令
(带借位的减法指令影响标志位)
SUBB A,Rn
;(A)←(A)-(Rn)-(C)
SUBB A,direct ;(A)←(A)-(direct)-(C)
SUBB A,@Ri ;(A)←(A)-((Ri)) -(C) SUBB
A,#data ;(A)←(A)-data-(C)
C:D7位(最高位)向前一位产生借位,那么C=1,否则C=0
Ac:低4位向高4位(D3向D4位),产生借位那么Ac=1,否则 Ac=0
OV=D6 ⊕ D7
4、乘法指令
MUL AB ;(BA)←(A)*
(B)
结果中的低8位存放在A1中,高8位存放在B中
5、除法指令
DIV AB ;(A) ←(A)/(B) ,
(B)←(A)%(B)
商存在A中,余数存在B中
6、加1指令
INC A ;(A)←(A)+1
INC Rn ;(Rn)←(Rn)+1
INC direct ;(direct)←(direct)+1
INC @Ri ;((Ri))←((Ri))+1
INC DPTR ;(DPTR)←(DPTR)+1
注:加1减1指令不影响标志位
7、减1指令 DEC A ;(A)←(A)-1
DEC Rn ;(Rn)←(Rn)-1
DEC direct ;(direct)←(direct)-1
DEC @Ri ;((Ri))←((Ri))-1
8、十进制调整指令
DA A
三、逻辑操作指令(24条)
1、逻辑“与”指令(6)
ANL A,Rn ;(A)←(A)∧ (Rn)
ANL A,direct ;(A)←(A)∧(direct)
ANL A,@Ri ;(A)←(A)∧((Ri))
ANL A,#data ;(A)←(A)∧data
ANL direct,A
;(direct)←(direct)∧(A)
ANL direct,#data ;(direct)←(direct)∧data
4.循环移位指令
RL A ;
RR A ;
RLC A ;
RRC A ;
5.求反指令
CPL A ;(A)←(A的反)
6.清零指令 CLR A ;(A)←0
四、控制转移类指令
1、无条件转移类指令
(1)绝对转移
AJMP addr11 ;跳转范围2KB
(2)长转移
LJMP addr16 ;跳转范围64KB
(3)相对转移
SJMP rel ;跳转范围256B
(4)间接转移指令
JMP @A+DPTR ;(pc)(A)+(DPTR)
2、条件转移指令
(1)判断A内容是否为0转移指令
JZ rel ;当(A)=0,则转移。否则,顺序执行
JNZ rel ; 当(A)≠0,则转移。否则,顺序执行
(2)比较不相等转移指令
CJNE A,direct,rel
CJNE A,#data,rel
CJNE Rn,#data,rel
CJNE @Rn,#data,rel
若不相等,(pc)←(pc)+rel。否则,程序顺序执行。 (3)减1不为零转移指令
DJNZ Rn,rel
DJNZ direct,rel
若减一非0,则(pc)←(pc)+rel否则,顺序执行
3、调用与返回指令
(1)调用指令
LCALL addr16 ;调用范围64KB
ACALL addr11 ;调用范围2KB
(2)返回指令
RET ;子程序返回
RETI ;中断程序返回
4、空操作指令
NOP ;不进行任何操作
五、位操作指令
1.位传送指令
MOV C,bit ;(C)←(bit)
MOV bit,C ;(bit)←(C)
2、位状态控制指令
(1)清零指令
CLR C ;(C)←0
CLR bit ;(bit)←0
(2)取反指令
CPL C ;(C)← (C)
CPL bit ;(bit)← (bit) (3)置1指令
SETB C ;(C)←1
SETB bit ;(bit)←1
3、位逻辑运算指令
(1)位与指令
ANL C,bit ;(C)← (C)∧(bit)
ANL C,/bit ;(C)← (C)∧(bit)
(2)位或指令
ORL C,bit ;(C)← (C)∨(bit)
ORL C,/bit ;(C)← (C)∨(bit)
4、位条件转移指令
JC rel ;当(C)为1,则转移;否则,顺序执行。
JNC rel ;当(C)为0,则转移;否则,顺序执行。
JB bit,rel;当(bit)为1,则转移;否则,顺序执行。
JNB bit,rel;当(bit)为0,则转移;否则,顺序执行。
JBC bit,rel;当(bit)为1,则(bit)←0,转移;否则,
顺序执行。