8051单片机汇编语言编程

在以前的8051微控制器教程中,我们已经看到了8051微控制器指令集和寻址模式。在本教程中,我们将查看8051微控制器汇编语言编程,8051个汇编语言,示例程序等的结构。

在进行8051微控制器汇编语言和编程的详细信息之前,让我们简要了解一般的编程语言(特定于微控制器)以及编程语言的类型。

什么是程序设计语言?

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

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

三级编程语言是:

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

8051单片机汇编语言图像2

机器语言

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

汇编语言

程序设计语言的下一个层次是汇编语言。由于机器语言或代码涉及到所有1和0的指令,人类很难使用它来编程。

汇编语言是一种机器语言的伪英语表示。8051微控制器汇编语言是英语的组合,如称为助记符和十六进制代码的单词。

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

高级语言

名称高级语言意味着您不必担心微控制器的架构或其他内部细节,它们使用人类容易理解的单词和语句。

很少有高级别语言的例子是基本的,C Pascal,C ++和Java。一个名为Compiler的程序将将以高级语言编写的程序转换为机器代码。

为什么汇编语言?

虽然高级语言很容易使用,但下面的原因指出了汇编语言的优势

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

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

8051微控制器汇编语言的结构

这里讨论了8051微控制器汇编语言的结构或语法。8051微控制器的汇编语言程序的每一行或声明包括三个字段:标签,指令和评论。

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

[标签:]指令[//评论]

注意:标签和注释的括号意味着这些字段是可选的,并且可能不会在程序中的所有语句中使用。

在了解这三个字段之前,让我们先看一个8051微控制器汇编语言中的典型语句或行是怎样的示例。

testlabel:mov a,24h;这是一个样本评论

在上述声明中,“testlabel”是标签的名称,“mov a,24h”是指令,“这是一个样本评论”是一个评论。

8051单片机汇编语言图像3

标签

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

选择标签名称的同时要记住的一个重要点是它们应该减少对文档的需求。

指令

该指令是8051微控制器汇编语言编程的主要部分,因为它负责微控制器执行的任务。汇编语言中的任何指令都包含两个部分:op-code和操作数。

8051单片机汇编语言图像4

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

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

注释

8051个汇编语言的结构的最后一部分是评论。注释是开发人员包含的语句,以便更容易地了解代码,并用于程序的正确文档。

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

下面的语句将展示使用标签、说明和注释的几种可能的方法。

没有指令和评论的标签:标签:

标签:MOV A, 22H

与指令和评论线条:MOV A,22H;这是一个评论

与标签和评论的线条:标签:;这是一个评论

Line with only Comment:;这是一个评论

还读:8051微控制器架构

8051微控制器汇编语言指令

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

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

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

8051单片机汇编语言图像

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

ORG -设置原点

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

为了将程序和数据放置在8051微控制器的地址空间中的任何位置,您可以使用ORG指令。

例子

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

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

org 000bh;告诉汇编程序在000bh汇编下一个语句

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

DB -定义字节

DB指令用于定义字节类型变量。使用此指令,您可以以十进制,二进制,十六进制或ASCII格式定义数据。对于二进制和'h'应该有一个'b'的后缀。ASCII字符被放置在单引号(如'String')中。

例子

ORG 0000 h

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

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

db'string';定义字符串“字符串”并在0002H到0007h存储

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

db 1234h;定义字节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 a,20h

mov r0,#30

结尾

8051微控制器汇编语言编程的示例

示例1

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

org 00h.

mov r0,#33h

mov a,r0

SETB PSW.3

SETB PSW.4

mov r0,a

结尾

示例2

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

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

8回复

  1. 嗨,我的名字是Harijeet我是移动技术人员,但我可以学习微控制器编程,所以PLZ帮助我带来一些想法

发表评论

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