理论教育 MCS-51系列单片机指令系统解析与应用

MCS-51系列单片机指令系统解析与应用

时间:2023-07-01 理论教育 版权反馈
【摘要】:任何微机只有硬件是不能工作的,必须配备各种功能的软件才能完成其运算、测控等功能,而软件中最基本的就是指令系统。不同类型的CPU有不同的指令系统。一台微机所能执行的全部指令的集合称为这个CPU的指令系统。8051单片机的寻址方式共有7种。位地址在指令中用bit表示。在此不对每一条指令进行详细介绍,只列出指令一览表。

MCS-51系列单片机指令系统解析与应用

任何微机只有硬件是不能工作的,必须配备各种功能的软件才能完成其运算、测控等功能,而软件中最基本的就是指令系统。不同类型的CPU有不同的指令系统。

指令就是CPU根据人的意图来执行某种操作的命令。一台微机所能执行的全部指令的集合称为这个CPU的指令系统。

1.指令格式

指令格式是指指令码的结构形式。通常由操作码、助记符字段和操作数字段两部分组成。指令格式如下:

操作码 [目的操作数],[源操作数]

例如:MOV A,#00H指令中,MOV是操作码,用以规定指令所实现的操作功能;A、#00H是目的操作数和源操作数。操作数可以是一个数,也可以是一个数据所在的空间地址

2.寻址方式

寻址就是寻找指令中操作数或操作数所在的地址。8051单片机的寻址方式共有7种。

(1)寄存器寻址 寄存器寻址就是由指令指出寄存器组R0~R7中某一位或其他寄存器A、B、DPTR等的内容作为操作数,例如:MOV A,R0 ;R0→A

(2)直接寻址 在指令中直接给出操作数所在存储单元的地址,称为直接寻址方式。此时,指令中的操作数部分是操作数所在地址,例如:MOV A,3AH ;(3AH)→A

(3)立即数寻址 指令操作码后面紧跟的是一字节或两字节操作数,用“#”表示,以区别直接地址。例如:MOV A,#3A ;3AH→A

MOV DPTR,#2000H;2000H→DPTR

(4)寄存器间接寻址 操作数的地址事先放在某个寄存器中,寄存器间接寻址是把指定寄存器的内容作为地址,由该地址所指定的单元内容作为操作数。例如:

MOV A,@R0;(R0)→A

若R0中的内容为65H,此命令将片内RAM 65H单元的内容送入A中。

(5)变址寻址(基址寄存器+变址寄存器间接寻址) 变址寻址是以某个寄存器的内容为基地址,然后在这个基地址的基础上加上地址偏移量形成真正的操作数地址。

例如:

MOVC A,@A+DPTR ;((A)+(DPTR))→A

若DPTR=02F1H,A=11H,则指令将程序存储器02F1H+11H=0302H中的内容送入A中。

(6)相对寻址 相对寻址只出现在相对转移指令中。相对转移指令执行时,是以当前的PC值加上指令中规定的偏移量rel而形成实际的转移地址。一般将相对转移指令操作码所在的地址成为源地址,转移后的地址称为目的地址。于是有:

目的地址=源地址+2(相对转移指令字节数)+rel

例如:JC rel;设rel=75H,Cy=1,PC=1000H,则转移的目的地址为1000H+75H+2H=1077H。

(7)位寻址 采用位寻址方式的指令的操作数将是8位二进制数中的某一位。指令中给出的是位地址,即片内RAM某一单元中的一位。位地址在指令中用bit表示。例如:CLR bit。

3.指令系统

8051指令系统由111条指令组成,见表7-10~表7-14。

7-10 数据传送指令

978-7-111-46732-8-Chapter07-74.jpg

(续)(www.daowen.com)

978-7-111-46732-8-Chapter07-75.jpg

7-11 算术运算指令

978-7-111-46732-8-Chapter07-76.jpg

7-12 位操作指令

978-7-111-46732-8-Chapter07-77.jpg

(续)

978-7-111-46732-8-Chapter07-78.jpg

7-13 逻辑运算指令

978-7-111-46732-8-Chapter07-79.jpg

7-14 控制程序转移

978-7-111-46732-8-Chapter07-80.jpg

(续)

978-7-111-46732-8-Chapter07-81.jpg

这些指令分为5大类:数据传送指令(28条)、算术运算指令(24条)、逻辑运算及移位指令(25条)、控制转移指令(17条)和位操作指令或布尔操作指令(17条)。在此不对每一条指令进行详细介绍,只列出指令一览表。

addr11 11位地址

addr16 16位地址

bit 位地址

rel 相对位移量,为8位有符号数(补码形式)

direct 直接寻址单元(RAM,SFR,I/O)

#data 立即数

Rn 工作寄存器R0~R7

A 累加器

Ri i=0或1,数据指针R0或R1

X 片内RAM中的直接地址或寄存器

@ 间接寻址方式中,表示间址寄存器的符号

(x) 在直接寻址方式中,表示直接地址X中的内容,在间接寻址方式中,表示间址寄存器X指出的地址单元的内容。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈