8051单片机指令集

在之前的8051单片机教程中,我们已经看到了8051的介绍,8051的体系结构和8051单片机的内存组织。继续,我们将在本教程中查看8051微控制器指令集和8051寻址模式。

8051单片机指令集介绍

为任何微控制器编写程序包括以特定的顺序给微控制器命令,为了执行特定的任务,这些命令必须被执行。对微控制器的命令被称为微控制器指令集。

正如我们的句子是由单词组成的,一个微控制器(就此而言,任何计算机)的程序是由指令组成的。编写在程序中的指令告诉微控制器执行哪个操作。

指令集对一系列计算机是独一无二的。本教程介绍了8051微控制器指令集,也称为MCS-51指令集。

由于8051系列微控制器是8位处理器,8051微控制器指令集为8位控制应用进行了优化。作为一个典型的8位处理器,8051单片机指令具有8位操作码。因此,8051单片机的指令集最多可以有2个8= 256条指令。

在进入8051单片机指令集的细节之前,请阅读以下内容:8051单片机存储器组织

简介8051微控制器指令和组

在进入8051微控制器指令集的详细信息之前,指令类型和寻址模式,让我们简要介绍8051微控制器指令集(MCS-51指令集)的指令和指令组。

下表显示8051指令组和每个指令组。8051单片机指令集有49个指令助记符,这些49个助记符被分为五组。

数据传输 算术 逻辑 布尔 程序分支
MOV 添加 ANL. CLR LJMP.
Movc. ADCC. ORL SETB AJMP.
movx. SUBB XRL MOV SJMP
公司 CLR JC 生理改变
流行 12月 CPL. JNC. jnz.
交换 m RL 简森-巴顿 CJNE
XCHD DIV RLC JNB. DJNZ
达一 RR JBC NOP
RRC ANL. LCALL
交换 ORL 一个电话
CPL. 受潮湿腐烂
重温
无条件转移指令

8051年寻址模式

什么是寻址模式?

寻址模式是一种定位目标数据的方法,也称为操作数。8051系列微控制器允许五种寻址模式来寻址操作数。它们是:

  • 立即寻址
  • 寄存器寻址
  • 直接寻址
  • 寄存器-间接寻址
  • 索引寻址

立即寻址

在即时寻址模式中,操作码后面的操作数是一个8或16位的常量数据。这个名字直接寻址来自这样一个事实,即存储在内存中的常量数据立即跟随操作码。

要存储的常量值是在指令本身中指定的,而不是从寄存器中获取。常量数据必须复制到的目标寄存器的大小应该与指令中提到的操作数相同。

例子:mov a,#030h

这里,累加器装载了30(十六进制)。操作数中的#表示它是数据而不是寄存器的地址。

即时寻址速度非常快,因为要加载的数据是在指令本身给出的。

寄存器寻址

在8051单片机存储器组织教程中,我们已经看到了RAM的组织和工作寄存器的四行,每个行中有八个寄存器。

在寄存器寻址模式中,8个寄存器中的一个(R0 - R7)在指令中被指定为操作数。

在PSW Register的帮助下选择合适的银行是很重要的。让我们来看一个注册寻址的示例,假设选择了Bank0。

例子:MOV, R5

这里,堤岸的寄存器R5的8位内容被移动到蓄能器。

直接寻址

在直接寻址模式下,数据的地址被指定为指令中的操作数。使用直接寻址模式,我们可以访问任何寄存器或片上变量。这包括通用RAM,SFR,I / O端口,控制寄存器。

例子:MOV, 47个h

这里,RAM位置47h中的数据被移动到累加器。

寄存器间接寻址

在间接寻址模式或寄存器间接寻址模式中,操作数的地址被指定为寄存器的内容。这将更加清晰。

例子:MOV, @R1

@符号表示寻址模式是间接的。例如,如果R1的内容是56H,那么操作数就在内部RAM位置56H中。如果内存位置56H的内容是24H,则将24H移入累加器。

间接寻址模式只允许R0和R1。这些间接寻址模式的寄存器称为指针寄存器。

索引寻址模式

使用索引寻址模式,操作数的有效地址是基本寄存器和偏移寄存器的总和。当偏移寄存器是累加器(A),基本寄存器可以是数据指针(DPTR)或程序计数器(PC)。

在索引寻址模式下,只能使用MOVC和JMP指令。索引的寻址模式在从查找表中检索数据时很有用。

例子:MOVC, @A +焦度

这里,操作数的地址是DPTR和Accumulator内容的和。

注意:一些作者和教科书添加了绝对寻址模式,相对寻址模式和长寻址模式等其他地址模式。

还阅读:8051单片机的体系结构

8051微控制器指令集中的指令类型

在看指令的类型之前,让我们先看一下8051单片机指令的结构。一个8051指令由一个操作码(不包括操作码)和一个大小为零字节、一个字节或两个字节的操作数组成。

指令的运算码部分包含助记符,助记符指定要执行的操作类型。指令的所有助记符或操作码部分都是一个字节大小。

即将到来的指令的操作数,它定义了说明正在处理的数据。操作数可以是以下任何一种:

  • 没有操作数
  • 数据值
  • I / O端口
  • 内存位置
  • CPU寄存器

可以有多个操作数,指令格式如下:

助记源目的操作数,源操作数

简单的指令仅包含Opcode。其他指令可以包括一个或多个操作数。指令可以是一个字节指令,它仅包含Opcode,或两个字节指令,其中第二个字节是操作数或三个字节指令,操作数构成第二个和第三字节。

根据它们所执行的操作,8051单片机指令集中的所有指令被分为五组。它们是:

  • 数据传送指令
  • 算术指令
  • 逻辑指令
  • 布尔或位操作指令
  • 程序分支指示

现在我们将简要地了解这些说明。

数据传送指令

数据传输指令与寄存器或外部程序存储器或外部数据存储器之间的数据传输相关联。下面给出与数据传输相关的助记符。

  • MOV
  • Movc.
  • movx.
  • 流行
  • 交换
  • XCHD

助记符

描述

MOV

移动数据
Movc.

移动代码

MOCX.

将外部数据

将数据移到堆栈

流行

从堆栈复制数据
交换

在两个寄存器之间交换数据

XCHD

在两个寄存器之间交换较低的订单数据

下表列出了所有可能的数据传输指令,以及其他细节,如寻址模式、占用的大小和它需要的数字机器周期。

8051单片机指令集图像

算术指令

使用算术指令,你可以执行加法,减法,乘法和除法。算术指令还包括加1、减1和一个特殊的指令,称为十进制调整累加器。

与8051单片机指令集算术指令相关的助记符有:

  • 添加
  • ADCC.
  • SUBB
  • 公司
  • 12月
  • m
  • DIV
  • 达一

助记符

描述

添加

没有携带
ADCC.

除了与携带

SUBB

减去与携带
公司

增加1

12月

递减1
m

DIV

达一

调整累加器(A寄存器)

算术指令不知道数据格式,如有符号、无符号、ASCII、BCD等。另外,算术指令执行的操作会影响PSW寄存器中的进位、溢出、零等标志。

下表中列出了与算术指令相关的所有可能的助记符。

8051单片机指令集图像3

逻辑指令

下一组指令是逻辑指令,执行与、或、异或、非、旋转、清除和交换等逻辑操作。逻辑指令是以字节为单位逐位执行的。

与“逻辑指令”相关的助记符如下:

  • ANL.
  • ORL
  • XRL
  • CLR
  • CPL.
  • RL
  • RLC
  • RR
  • RRC
  • 交换

助记符

描述

ANL.

逻辑和
ORL

逻辑或

XRL

前任伴侣或者
CLR

明确的注册

CPL.

补充登记
RL

向左旋转一个字节

RLC

旋转字节并携带位
RR

向右旋转字节

RRC

旋转一个字节并向右进位
交换

交换较低和较高的字节蚕食

下表显示了逻辑指令的所有可能的助记符。

8051单片机指令集图像2

布尔或位操作指令

顾名思义,布尔或比特操纵指令处理位变量。我们知道RAM中有一个特殊的位可寻址区域,一些特殊功能寄存器(SFR)也是可寻址的。

对应于布尔或位操作指令的助记符是:

  • CLR
  • SETB
  • MOV
  • JC
  • JNC.
  • 简森-巴顿
  • JNB.
  • JBC
  • ANL.
  • ORL
  • CPL.

助记符

描述
CLR

清除位(重置为0)

SETB

设置一点(设置为1)
MOV

move

JC

跳转如果设置携带标志
JNC.

如果进位标志未设置,跳转

简森-巴顿

如果指定的Bit是Set,则跳转
JNB.

如果指定的位没有设置,跳转

JBC

如果指定的位为“Set”,则跳转并清除该位
ANL.

位和

ORL

按位或
CPL.

补充这一点

这些指令可以在位级执行set, clear, and, or, complement等操作。所有可能的布尔指令助记符在下表中指定。

8051微控制器指令集图像4_2

程序分支指示

8051单片机指令集的最后一组指令是程序分支指令。这些指令控制程序逻辑的流程。程序分支指令的助记符如下。

  • LJMP.
  • AJMP.
  • SJMP
  • 生理改变
  • jnz.
  • CJNE
  • DJNZ
  • NOP
  • LCALL
  • 一个电话
  • 受潮湿腐烂
  • 重温
  • 无条件转移指令

助记符

描述
LJMP.

跳跃(无条件)

AJMP.

绝对跳跃(无条件)
SJMP

短跳(无条件)

生理改变

A = 0时跳
jnz.

如果a不等于0,则跳跃

CJNE

如果不相等,比较和跳跃
DJNZ

如果不是零,递减和跳跃

NOP

没有操作
LCALL

长时间呼叫子程序

一个电话

对子程序的绝对调用(无条件)
受潮湿腐烂

从子程序返回

重温

从中断返回
无条件转移指令

跳转到地址(无条件)

所有这些指令,除了NOP(无操作)影响程序计数器(PC)以一种或其他方式。在将控制转移到程序的其他部分之前,这些指令中的一些具有决策能力。

下表显示了与程序分支指令有关的所有助记符。

8051单片机指令集图像5_1

在本教程中,我们已经看到了8051微控制器指令集的介绍,8051微控制器中的寻址模式以及8051微控制器的指令集中的不同类型的指令。

14的反应

发表评论

您的电子邮件地址将不会被公布。必填字段被标记*