单片机指令系统(1)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/CHENYUNHE/article/details/84674594

本篇博客主要列出了单片机的主要指令,供开发人员参考。作为一个单片机初学者,记住指令特别的痛苦,不过主要还是要理解,多练习指令,写多了就记住了,这是一个很自然的过程。

目录

 

一、寻址方式

二、指令分类

1 数据传送类指令

2 算术运算类指令


一、寻址方式

寻址方式有七种:

1.立即寻址 

如:MOV A,#3AH

2.直接寻址

如:MOV  A,3AH

3.寄存器寻址

如:MOV  A,R2

4.寄存器间接寻址

如:MOV  A,@R0

5.变址寻址

如:MOVC  A,@A+DPTR

6.相对寻址

如:JC  03H

7.位寻址

如:SETB 3DH

二、指令分类

对于刚接触指令的人来说,记住指令是非常痛苦的,其实只需要记住两个图就OK了。

上述两个图全面的展示了指令的操作,箭头所指的方向表示某一值或某一地址里面的值可以送入。

下面分类介绍指令:

1 数据传送类指令

1.1  内部RAM数据传送指令

(1)累加器为目的操作数的指令

MOV A,Rn         ;(Rn)->A
MOV A,dir        ;(dir)->A
MOV A,@Ri        ;((Ri))->A
MOV A,#data      ;data->A

(2)以寄存器Rn为目的操作数的指令

MOV Rn,A            ;(A)->Rn
MOV Rn,dir          ;(dir)->Rn
MOV Rn,#data        ;data-.Rn

(3)以直接地址为目的操作数的指令

MOV dir,A               ;(A)->dir
MOV dir,Rn              ;(Rn)->dir
MOV dir,dir             ;(dir)->dir
MOV dir,@Ri             ;((Ri))->dir
MOV dir,#data           ;data->dir

(4)以间接地址为目的操作数的指令

MOV @Ri,A               ;(A)->(Ri)
MOV @Ri,dir             ;(dir)->(Ri)
MOV @Ri,#data           ;data->(Ri)

(5)16位数据传送指令

MOV DPTR,#data16        ;dataH->DPH,dataL->DPL

1.2 外部数据传送指令

MOVX A,@DPTR            ;((DPTR))->A
MOVX @DPTR,A            ;(A)->(DPTR)
MOVX A,@Ri              ;((Ri))->A
MOVX @Ri,A              ;(A)->(Ri)

1.3 查表指令

MOVC A,@A+PC            ;(PC)+1->PC,((A)+(PC))->A
MOVC A,@A+DPTR          ;((A)+(DPTR))->A

1.4 堆栈操作指令

PUSH dir            ;(SP)+1->SP,(dir)->(SP)
POP dir             ;((SP))->dir,(SP)-1->SP

1.5 交换指令

XCH A,Rn            ;(A)<->(Rn)
XCH A,dir           ;(A)<->(dir)
XCH A,@Rn           ;(A)<->((Rn))
XCHD A,@Ri          ;(A3~0)<->((Ri3~0))
SWAP A;             ;(A3~0)<->(A7~4)

2 算术运算类指令

2.1 加法指令

ADD A,Rn            ;(A)+(Rn)->A
ADD A,dir           ;(A)+(dir)->A
ADD A,@Ri           ;(A)+((Ri))->A
ADD A,#data         ;(A)+data->A

2.2 带进位加法指令

ADDC A,Rn            ;(A)+(Rn)+CY->A
ADDC A,dir           ;(A)+(dir)+CY->A
ADDC A,@Ri           ;(A)+((Ri))+CY->A
ADDC A,#data         ;(A)+data+CY->A

2.3 带借位减法指令

SUBB A,Rn            ;(A)-(Rn)-CY->A
SUBB A,dir           ;(A)-(dir)-CY->A
SUBB A,@Ri           ;(A)-((Ri))-CY->A
SUBB A,#data         ;(A)-data-CY->A

2.4 乘法指令

MUL AB            ;(A)X(B)->BA,B15~8,A7~0

2.5 除法指令

DIV AB            ;A/B->A,A%B->B

2.6 减1指令

DEC A            ;(A)-1->A
DEC Rn           ;(Rn)-1->Rn
DEC dir          ;(dir)-1->dir
DEC @Ri          ;((Ri))-1->(Ri)

2.7 十进制调整指令

DA A

(by:CHENYUNHE 2018-12-6 https://blog.csdn.net/CHENYUNHE/ )

猜你喜欢

转载自blog.csdn.net/CHENYUNHE/article/details/84674594