8051单片机汇编语言编程

在之前的8051微控制器教程中,我们已经看到了关于8051微控制器指令集和寻址模式。亚博彩票下载在本教程中,我们将看一看8051单片机汇编语言编程,8051汇编语言的结构,示例程序等。

在详细介绍8051单片机汇编语言和程序设计之前,让我们先简单了解一下程序设计语言(具体到单片机)和程序设计语言的类型。亚博彩票下载

什么是编程语言?

在微控制器(或任何计算机)的意义上,编程意味着编写一个指令序列,由处理器按照特定的顺序执行一个预定义的任务。编程还涉及到指令和指令序列的调试和故障排除,以确保所需的任务得到执行。

与任何语言一样,编程语言也有特定的单词、语法和规则。8051单片机有三种编程语言。这些级别是基于语言中的语句与微控制器执行的操作或任务的相似程度。

编程语言的三个层次是:

  • 机器语言
  • 汇编语言
  • 高级语言

8051单片机汇编语言图像2

机器语言

在机器语言或机器代码中,指令以二进制位模式编写,即二进制数字1和0的组合,存储为高电平和低电平。这是最低层次的编程语言,是微控制器或微处理器真正理解的语言。

汇编语言

程序设计语言的下一个层次是汇编语言。由于机器语言或代码包含了所有以1和0表示的指令,因此人类很难使用它进行编程。

汇编语言是机器语言的一种伪英语表示。8051单片机汇编语言是由英语单词记忆和十六进制代码组合而成。

它也是一种低级语言,需要对微控制器的结构有广泛的了解。

高级语言

高级语言的名称意味着你不需要担心微控制器的架构或其他内部细节,它们使用的文字和语句很容易被人类理解。亚博彩票下载

很少有高级语言的例子是BASIC、C Pascal、c++和Java。一个叫做编译器的程序将把用高级语言编写的程序转换成机器码。

为什么汇编语言?

尽管高级语言很容易使用,但以下原因指出了汇编语言的优势

  • 用汇编语言编写的程序执行得更快,占用的内存更少。
  • 在汇编语言的帮助下,您可以直接开发微控制器的所有功能。
  • 使用汇编语言,您可以直接和准确地控制所有的微控制器资源,如I/O端口,RAM, SFRs等。
  • 与高级语言相比,汇编语言具有较少的规则和限制。

还请阅读这篇有趣的文章:8051单片机指令集

8051单片机的汇编语言结构

本文讨论了8051单片机汇编语言的结构和语法。8051单片机汇编语言程序的每一行或每条语句都由三个字段组成:标签、指令和注释。

这些字段的排列或它们出现的顺序如下所示。

[标签:]指令(/ /注释)

注意:Label和Comments的括号意味着这些字段是可选的,不能在程序的所有语句中使用。

在讨论这三个字段之前,让我们亚博彩票下载先看一个例子,看看8051微控制器汇编语言中的典型语句或行是怎样的。

Testlabel: mov a, 24h;这是一个示例注释

在上面的语句中,“TESTLABEL”是标签的名称,“MOV A, 24H”是指令,“THIS is A SAMPLE COMMENT”是注释。

8051单片机汇编语言

标签

标签是程序员为内存位置或程序中的语句选择的名称。语句的Label部分是可选的,如果存在,Label必须以冒号(:)结束。

在为Label选择名称时需要记住的一点是,它们应该减少对文档的需要。

指令

指令是8051单片机汇编语言程序设计的主要部分,它负责单片机执行的任务。汇编语言中的任何指令都由两部分组成:操作代码和操作数。

8051单片机汇编语言

指令的第一部分是操作代码(Op-code),它是操作代码(Operation Code)的缩写,指定微控制器要执行的操作。汇编语言中的操作码被称为助记符。操作码是二进制格式(在机器语言中使用),而助记符(相当于操作码)是类似于英语的语句。

指令的第二部分称为操作数,它表示执行操作的数据(Data)。有两种类型的操作数:源操作数和目的操作数。源操作数是操作的输入,而目的操作数是存储结果的地方。

评论

8051汇编语言结构的最后一部分是注释。注释是开发人员为了更容易理解代码而包含的语句,并用于程序的适当文档。

注释是可选的,如果使用注释,它们必须以分号(;)或双斜杠(//)开头,这取决于汇编程序。

下面的陈述将展示一些使用标签、说明和注释的可能方法。

无说明和评论的标签:

Line with Label and instructions: Label: MOV A, 22H

Line with Instruction and Comment: MOV A, 22H;这是一个评论

Line with Label and Comment: Label:;这是一个评论

一行只有注释:;这是一个评论

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

8051单片机汇编语言指令

汇编语言指令不是8051微控制器汇编器的指令,即使它们是在程序的助记字段中编写的。汇编语言指令实际上是给汇编程序的指令,指导汇编程序在汇编过程中做什么。

汇编语言指令对8051微控制器内存的内容没有任何影响(DB和DW指令除外)。

这些指令依赖于汇编程序,在ASM51汇编程序中,以下是指令的类别。

8051单片机汇编语言

现在我们将看到一些重要的和经常使亚博彩票下载用的汇编语言指令。

ORG -设置起源

8051单片机汇编语言程序将从程序内存地址0000H开始汇编。这也是8051微控制器开始执行代码的地址。

为了把程序和数据放在8051微控制器地址空间的任何地方,你可以使用ORG指令。

例子

ORG 0000 h;告诉汇编器在0000H处汇编下一条语句

LJMP主要;代码内存在0000H。跳转到主要。

ORG 000 bh;告诉汇编器在000BH汇编下一条语句

主要:NOP;代码内存在000BH。主要从这里开始。

DB -定义字节

DB指令用于定义Byte类型变量。使用此指令,您可以定义十进制、二进制、十六进制或ASCII格式的数据。应该有一个后缀' B '表示二进制,' H '表示HEX。ASCII字符放在单引号中(像' string ')。

例子

ORG 0000 h

DB 10;定义字节10(十进制)并存储在0000H

DB 30 h;定义字节30(十六进制)和存储在0001H

DB '字符串';定义String ' String '并存储在0002H到0007H

DB 00001111 b;定义字节00001111(二进制)并存储在0008H

DB 1234 h;定义字节34(十六进制)和存储在0009H。只有下字节是

接受为DB只能分配一个字节的内存。

DW -定义单词

定义字(DW)指令用于在程序中包含16位数据。DW的功能与DB相似,只是DW生成16位值。

装备——等同起来

使用EQU指令,你可以将一个符号(或标签)与一个值关联起来。

例子

TMP #30;将值#30赋给名称TMP

Red_led equ p1.0;P1.0定义为RED_LED

结束

END指令用于停止组装过程。这应该是程序中的最后一条语句。END指令不能有Label,并且END以外的语句将不会被汇编程序处理。

例子

ORG 0000 h

MOV, 20 h

MOV R0, # 30

结束

8051单片机汇编语言编程实例

示例1

下面是一个简单的8051单片机汇编语言,它将Bank0的R0复制到Bank3的R0。

ORG 00 h

MOV R0, # 33 h

MOV, R0

SETB PSW.3

SETB PSW.4

MOV R0,

结束

示例2

在下一个示例中,您可以切换连接到8051微控制器PORT1的led ON和OFF(闪烁的led)。

在本教程中,我们已经了解了8051单片机汇编语言编程的基础知识亚博彩票下载,8051汇编语言的结构,汇编语言指令和一些例子。

8反应

  1. 嗨,我的名字是harijeet,我是移动技术员,但我可以学习微控制器编程,所以请帮助我的乐队给我一些想法

留下一个回复

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