单片机指令表(最全)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MCS-51共有111条指令,可分为5类:

[1].数据传送类指令(共29条)

[2].算数运算类指令(共24条)

[3].逻辑运算及移位类指令(共24条)

[4].控制转移类指令(共17条)

[5].布尔变量操作类指令(共17条)

一些特殊符号的意义

在介绍指令系统前,我们先了解一些特殊符号的意义,这对今后程序的编写都是相当有用的。

Rn——当前选中的寄存器区的8个工作寄存器R0—R7(n=0-7)。

Ri——当前选中的寄存器区中可作为地址寄存器的两个寄存器R0和R1(i=0,1)

direct—内部数据存储单元的8位地址。包含0—127(255)内部存储单元地址和特殊功能寄存地址。

#data—指令中的8位常数。

#data16—指令中的16位常数。

addr16—用于LCALL和LJMP指令中的16目的地地址,目的地址的空间为64kB程序存储器地址。

#addr11—用于ACALL和AJMP指令中的11目的地地址,目的地址必须放在与下条指令第一个字节同一个2kB程序存储器空间之中。

rel—8位带符号的偏移字节,用于所有的条件转移和SJMP等指令中,偏移字节对于下条指令的第一个字节开始的-128——+127范围内。

@—间接寄存器寻址或基址寄存器的前缀。

/—为操作的前缀,声明对该位操作书取反。

DPTR—数据指针。

bit—内部RAM和特殊功能寄存器的直接寻址位。

A—累加器。

B—累加器B。用于乘法和除法指令中。

C—进位标志位。

(x)—某地址单元中的内容。

((x))—由X寻址单元中的内容。

(一)MCS-51的寻址方式

寻址的“地址”即为操作数所在单元的地址,绝大部分指令执行时都需要用到操作数,那么到哪里去取得操作数呢?最易想到的就是告诉CPU操作数所在的地址单元,从那里可取得响应的操作数,这便是“寻址”之意。MCS-51的寻址方式很多,使用起来也相当方便,功能也很强大,灵活性强。这便是MCS-51指令系统“好用”的原因之一。下面我们分别讨论几种寻址方式的原理。

[1].直接寻址

指令中操作数直接以单元地址形式出现,例如:

MOV A,68H

这条指令的意义是把内部RAM中的68H单元中的数据内容传送到累加器A中。值得注意的是直接寻址方式只能使用8位二进制地址,因此这种寻址方式仅限于内部RAM进

行寻址。低128位单元在指令中直接以单元地址的形式给出。

对于特殊功能寄存器可以使用其直接地址进行访问,还可以以它们的符号形式给出,只是特殊功能寄存器只能用直接寻址方式访问,而无其它方法。

单片机指令以A开头的指令有18条,分别为:

1、ACALL addr11

指令名称:绝对调用指令

指令代码:A10 A9 A8 10001 A7 A6 A5 A4 A3 A2 A1 A0 指令功能:构造目的地址,进行子程序调用。其方法是以指令提供的11位地址(al0~a0),

取代PC的低11位,PC的高5位不变。

操作内容:

PC←(PC)+2

SP←(SP)+1

(SP)←(PC)7~0

SP←(SP)+1

(SP)←(PC)15~8

PC10~0←addrl0~0

字节数:2

机器周期:2

使用说明:由于指令只给出子程序入口地址的低11位,因此调用范围是2KB。

2、ADD A,Rn

指令名称:寄存器加法指令

指令代码:28H~2FH

指令功能:累加器内容与寄存器内容相加

操作内容:A←(A)+(Rn),n=0~7

字节数:1

机器周期;1

影响标志位:C,AC,OV

3、ADD A,direct

指令名称:直接寻址加法指令

指令代码:25H

指令功能:累加器内容与内部RAM单元或专用寄存器内容相加

操作内容:A←(A)+(direct)

字节数:2

机器周期:1

影响标志位:C,AC,OV

4、ADD A,@Ri ’

指令名称:间接寻址加法指令

指令代码:26H~27H

指令功能:累加器内容与内部RAM低128单元内容相加

操作内容:A←(A)+((Ri)),i=0,1

字节数:1

机器周期:1

影响标志位:C,AC,OV

5、ADD A,#data

指令名称:立即数加法指令

指令代码:24H

指令功能:累加器内容与立即数相加

操作内容:A←(A)+data

字节数: 2

机器周期:1

影响标志位:C,AC,OV

6、ADDC A,Rn

指令名称:寄存器带进位加法指令

指令代码:38H~3FH

指令功能:累加器内容、寄存器内容和进位位相加

操作内容:A←(A)+(Rn)+(C),n=0~7

字节数: 1

机器周期:1

影响标志位:C,AC,OV

7、ADDC A,direct

指令名称:直接寻址带进位加法指令

指令代码:35H

指令功能:累加器内容、内部RAM低128单元或专用寄存器内容与进位位加

操作内容:A←(A)+(direct)+(C)

字节数: 2

机器周期:1

影响标志位:C,AC,OV

8、ADDC A,@Ri

指令名称:间接寻址带进位加法指令

指令代码:36H~37H

指令功能:累加器内容、内部RAM低128单元内容及进位位相加

操作内容:A←(A)+((Ri))+(C),i=0,1

字节数: 1

机器周期:1

影响标志位:C,AC,OV

9、ADDC A,#data

指令名称:立即数带进位加法指令

指令代码:34H

指令功能:累加器内容、立即数及进位位相加

操作内容:A←(A)+data+(C)

字节数: 2

机器周期:1

影响标志位:C,AC,OV

10、AJMP addr11

指令名称:绝对转移指令

指令代码:A10 A9 A8 1 0 0 0 1 A7 A6 A5 A4 A3 A2 A1 A0

指令功能:构造目的地址,实现程序转移。其方法是以指令提供的11位地址,取代PC的低11位,.而PC的高5位保持不变。操作内容:PC←(PC)+2

PCl0~0←addrll

字节数:2

机器周期:2

使用说明:由于addrll的最小值是000H,最大值是7FFH,因此地址转移范围是2KB。

11、ANL A,Rn

指令名称:寄存器逻辑与指令

指令代码:58H~5FH

指令功能:累加器内容逻辑与寄存器内容

操作内容:A←(A)∧(Rn),n=0~7

字节数:1

机器周期:1

12、ANL A,direct

指令名称:直接寻址逻辑与指令

指令代码:55H

指令功能:累加器内容逻辑与内部RAM低128单元或专用寄存器内容

操作内容:A←(A)∧(diret)

字节数:2

机器周期:1

13、ANL A,@Ri

指令名称:间接寻址逻辑与指令

指令代码:56H~57H

指令功能:累加器内容逻辑与内部RAM低128单元内容

操作内容:A←(A)∧((Ri)) i=0,1

字节数:1

机器周期:1

14、ANL A,#data

指令名称:立即数逻辑与指令

指令代码:54H

指令功能:累加器内容逻辑与立即数

操作内容:A←(A)∧data

字节数:2

机器周期:1

15、ANL direct,A

指令名称:累加器逻辑与指令

指令代码:52H

指令功能:内部RAM低128单元或专用寄存器内容逻辑与累加器内容

操作内容:direct←(A)∧(direct)

字节数:2

机器周期:1

16、ANL direct,#data

指令名称:逻辑与指令

指令代码:53H

指令功能:内部RAM低128单元或专用寄存器内容逻辑与立即数

相关文档
最新文档