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 添加 退火 CLR. LJMP
MOVC ADDC orl. SETB AJMP
MOVX SUBB XRL mov SJMP
公司 CLR. JC. JZ.
流行 12月 产线 JNC JNZ
XCH. MUL RL jb. CJNE
XCHD. DIV rlc. JNB DJNZ.
达阿 RR JBC NOP
RRC 退火 lecall.
交换 orl. 驱使着
产线 受潮湿腐烂
RETI
jmp.

8051年寻址模式

什么是寻址模式?

寻址模式是定位目标数据的方法,该目标也称为操作数。8051系列的微控制器允许用于寻址操作数的五种类型的寻址模式。他们是:

  • 立即寻址
  • 寄存器寻址
  • 直接寻址
  • 注册 - 间接寻址
  • 变址寻址

立即寻址

在立即寻址模式下,遵循操作码的操作数是8或16位的常量数据。名称即时寻址来自:存储在内存中的常量数据立即跟随操作码。

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

例子:MOV, # 030 h

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

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

寄存器寻址

在8051微控制器内存组织教程中,我们已经看到了RAM组织和四个工作寄存器,每个银行都有八个寄存器。

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

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

例子:MOV, R5

在这里,Bank0的寄存器R5的8位内容被移动到累加器。

直接寻址

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

例子:MOV, 47个h

在这里,内存位置47H中的数据被移动到累加器。

寄存器间接寻址

在间接寻址模式或寄存器间接寻址模式中,操作数的地址被指定为寄存器的内容。举个例子会更清楚。

例子:MOV, @R1

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

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

索引寻址模式

在索引寻址模式下,操作数的有效地址是一个基寄存器和一个偏移寄存器的和。基寄存器可以是数据指针(DPTR)或程序计数器(PC),而偏移寄存器是累加器(A)。

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

例子:MOVC A,@ A + DPTR

这里,操作数的地址是DPTR和累加器的内容之和。

笔记:一些作者和教科书添加了少数其他寻址模式,如绝对寻址模式,相对寻址模式和长寻址模式。

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

8051单片机指令集中的指令类型

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

指令的op-code部分包含助记符,它指定要执行的操作类型。所有助记符或指令的操作码部分都具有一个字节大小。

进入指令的Operand部分,它定义了指令正在处理的数据。操作数可以是以下任意一个:

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

可以多种操作数,指令的格式如下:

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

一个简单的指令只包含操作码。其他指令可能包括一个或多个操作数。指令可以是单字节指令(只包含操作码),也可以是双字节指令(其中第二个字节是操作数),或者是三字节指令(其中操作数组成第二个和第三个字节)。

基于它们执行的操作,8051微控制器指令集中的所有指令都分为五组。他们是:

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

我们现在将简要介绍这些说明。亚博彩票下载

数据传输指令

数据传输指令与寄存器或外部程序存储器或外部数据存储器之间的数据传输有关。与数据传输相关的助记符如下所示。

  • mov
  • MOVC
  • MOVX
  • 流行
  • XCH.
  • XCHD.

助药版

描述

mov

移动数据
MOVC

移动代码

MOCX

移动外部数据

将数据移到堆栈

流行

从堆栈复制数据
XCH.

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

XCHD.

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

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

8051单片机指令集图像

算术指令

使用算术指令,可以执行添加,减法,乘法和划分。算术指令还包括递增1,由一个名为十进制调整累加器的特殊指令递减。

与8051微控制器指令集的算术指令相关联的助记符是:

  • 添加
  • ADDC
  • SUBB
  • 公司
  • 12月
  • MUL
  • DIV
  • 达阿

助药版

描述

添加

除了没有携带
ADDC

加入携带

SUBB

与携带减去
公司

增加1

12月

减少1
MUL

DIV

达阿

小数调整累加器(寄存器)

此外,算术指令没有关于数据格式的知识,签名,无符号,ASCII,BCD等。还,由算术指令执行亚博彩票下载的操作会影响PSW寄存器中的携带,溢出,零等的标志。

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

8051单片机指令集图像3

逻辑指示

下一组指令是逻辑指令,其执行逻辑操作,或者,XOR,而不是,旋转,清除和交换。逻辑指令以比特的基础上的数据字节数执行。

与逻辑指示相关的助记符如下:

  • 退火
  • orl.
  • XRL
  • CLR.
  • 产线
  • RL
  • rlc.
  • RR
  • RRC
  • 交换

助药版

描述

退火

逻辑和
orl.

逻辑或

XRL

ex-or
CLR.

清除注册

产线

补充寄存器
RL

向左旋转一个字节

rlc.

旋转一个字节并向左进位
RR

向右旋转一个字节

RRC

旋转字节并携带位
交换

在字节中交换较低和更高的啃咬

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

8051单片机指令集图像2

布尔或位操作说明

顾名思义,布尔或位操作指令处理位变量。我们知道在RAM中有一个特殊的位寻址区域,一些特殊函数寄存器(SFRs)也是位寻址的。

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

  • CLR.
  • SETB
  • mov
  • JC.
  • JNC
  • jb.
  • JNB
  • JBC
  • 退火
  • orl.
  • 产线

助药版

描述
CLR.

清除位(重置为0)

SETB

设置位(设置为1)
mov

移动一点

JC.

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

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

jb.

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

如果未设置指定位,则跳跃

JBC

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

位和

orl.

按位或者
产线

补充一点

这些指令可以在位级别执行集,清除和,或,补充等。布尔说明的所有可能的助记符都在下表中指定。

8051单片机指令集图像4_2

程序分支指令

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

  • LJMP
  • AJMP
  • SJMP
  • JZ.
  • JNZ
  • CJNE
  • DJNZ.
  • NOP
  • lecall.
  • 驱使着
  • 受潮湿腐烂
  • RETI
  • jmp.

助药版

描述
LJMP

跳远(无条件)

AJMP

绝对跳(无条件)
SJMP

短跳(无条件)

JZ.

如果A等于0,则跳跃
JNZ

如果A不等于0就跳

CJNE

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

如果不是零,则递减和跳跃

NOP

没有操作
lecall.

长期呼叫子程序

驱使着

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

从子程序返回

RETI

从中断返回
jmp.

跳转到地址(无条件)

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

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

8051微控制器指令集图像5_1

在本教程中,我们已经看到了8051单片机指令集的介绍,8051单片机中的寻址模式和8051单片机指令集中的不同类型的指令。

14回应

留下一个回复

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