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 借调 XRL. MOV SJMP.
公司 CLR JC 生理改变
流行音乐 12月 产线 JNC JNZ
交换 MUL rl. 简森-巴顿 CJNE.
XCHD div RLC JNB DJNZ
达一 rr. JBC.
RRC. 退火 LCALL
交换 ORL 驱使着
产线
RETI
无条件转移指令

8051寻址模式

什么是寻址模式?

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

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

立即寻址

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

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

例子:MOV, # 030 h

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

当要加载的数据本身给出时,立即寻址非常快。

注册址..

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

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

在PSW寄存器的帮助下选择合适的银行很重要。假设选择BANK0,让我们了解寄存器寻址的示例。

例子:mov a,r5

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

直接寻址

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

例子:mov a,47h

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

注册间接寻址

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

例子:mov a,@ r1

@符号表示寻址模式是间接的。例如,如果R1的内容为56h,则操作数在内部RAM位置56h中。如果RAM位置56h的内容是24h,则24h被移动到蓄能器中。

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

索引寻址模式

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

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

例子:MOVC, @A +焦度

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

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

还读:8051微控制器架构

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

在看到指令类型之前,让我们了解8051微控制器指令的结构。8051指令由Opcode(操作短缺)组成,后跟大小零字节,一个字节或两个字节的操作数。

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

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

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

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

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

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

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

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

现在我们将简要地了解这些说明。欧宝官网app苹果下载

数据传送指令

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

  • MOV
  • MOVC
  • MOVX
  • 流行音乐
  • 交换
  • XCHD

助记符

描述

MOV

移动数据
MOVC

移动代码

MOCX

将外部数据

将数据移动到堆栈

流行音乐

从堆栈复制数据
交换

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

XCHD

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

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

8051微控制器指令集图像1

算术指令

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

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

  • 添加
  • ADDC
  • 借调
  • 公司
  • 12月
  • MUL
  • div
  • 达一

助记符

描述

添加

除了没有携带
ADDC

除了与携带

借调

减去与携带
公司

递增1

12月

递减1
MUL

div

划分
达一

调整累加器(A寄存器)

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

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

8051微控制器指令集图像3

逻辑指令

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

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

  • 退火
  • ORL
  • XRL.
  • CLR
  • 产线
  • rl.
  • RLC
  • rr.
  • RRC.
  • 交换

助记符

描述

退火

逻辑和
ORL

逻辑或者

XRL.

前任伴侣或者
CLR

明确的注册

产线

补充登记
rl.

向左旋转字节

RLC

旋转一个字节并向左进位
rr.

向右旋转一个字节

RRC.

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

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

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

8051微控制器指令集图像2

布尔或位操作指令

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

对应于布尔或比特操纵指令的助记符是:

  • CLR
  • SETB.
  • MOV
  • JC
  • JNC
  • 简森-巴顿
  • JNB
  • JBC.
  • 退火
  • ORL
  • 产线

助记符

描述
CLR

清除一点(重置为0)

SETB.

设置位(设置为1)
MOV

移动一点

JC

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

如果没有设置携带标志,则跳跃

简森-巴顿

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

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

JBC.

如果设置指定位并且也清除该位,则跳跃
退火

按位和

ORL

按位或
产线

补充一点

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

8051单片机指令集图像4_2

程序分支指令

8051微控制器指令集中的最后一组指令是程序分支指令。这些指令控制程序流程。程序分支指示的助记符如下。

  • LJMP
  • AJMP
  • SJMP.
  • 生理改变
  • JNZ
  • CJNE.
  • DJNZ
  • LCALL
  • 驱使着
  • RETI
  • 无条件转移指令

助记符

描述
LJMP

跳远(无条件)

AJMP

绝对跳(无条件)
SJMP.

短跳(无条件)

生理改变

A = 0时跳
JNZ

如果A不等于0就跳

CJNE.

比较并跳跃如果不等于
DJNZ

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

没有操作
LCALL

长时间呼叫子程序

驱使着

对子程序的绝对调用(无条件)

从子程序返回

RETI

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

跳到地址(无条件)

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

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

8051单片机指令集图像5_1

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

14的反应

留下一个回复

您的电子邮件地址将不会被公布。必需的地方已做标记*