单片机的指令

  • 格式: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,转移;否则,

顺序执行。