0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

单片机汇编语言的结构/数据类型/汇编指令

科技观察员 来源:英锐恩 作者:英锐恩 2023-07-07 12:28 次阅读

开发汇编语言是为了为机器级代码指令提供助记符或符号,汇编语言程序由助记符组成,因此应将它们翻译成机器代码。负责这种转换的程序称为汇编程序。汇编语言通常被称为低级语言,因为它直接与 CPU 的内部结构一起工作。要用汇编语言编程,程序员必须知道 CPU 的所有寄存器

不同的编程语言,如 C、C++Java 和各种其他语言,被称为高级语言,因为它们不处理 CPU 的内部细节。相比之下,汇编器用于将汇编语言程序翻译成机器代码(有时也称为目标代码或操作码)。类似地,编译器将高级语言翻译成机器代码。例如,要用 C 语言编写程序,必须使用 C 编译器将程序翻译成机器语言。

一、汇编语言的结构

汇编语言程序是一系列语句,它们要么是 ADD 和 MOV 等汇编语言指令,要么是称为指令的语句。

一个指令告诉CPU做什么,而指令(又称伪指令)给出指令汇编。例如,ADD 和MOV 指令是CPU 运行的命令,而ORG 和END 是汇编指令。当使用 ORG 指令时,汇编器将操作码放置到内存位置 0,而 END 指示到源代码的结尾。程序语言指令由以下四个字段组成:

[ label: ] mnemonics [ operands ] [;comment ]

其中,上面方括号“[ ]”表示该字段是可选的。

标签字段允许程序通过名称来指代一行代码。标签字段不能超过一定数量的字符。该助记符和操作数的字段一起执行程序的实际工作和完成的任务。像 ADD A , C & MOV C, #68 这样的语句,其中 ADD 和 MOV 是产生操作码的助记符;“A,C”和“C,#68”是操作数。这两个字段可以包含指令。指令不生成机器代码,仅由汇编程序使用,而指令则被翻译成机器代码供 CPU 执行。

二、创建和运行8051程序

这里我们将讨论汇编语言的基本形式。创建和运行汇编语言程序的步骤如下:

首先,我们使用编辑器键入类似于上述程序的程序。可以使用所有 Microsoft 操作系统附带的 MS-DOS EDIT 程序等编辑器来创建或编辑程序。编辑器必须能够生成 ASCII 文件。汇编程序在下一步中使用源文件的“asm”扩展名。

“asm”源文件包含在步骤1中创建的程序代码。它被发送到8051汇编器。然后,汇编器将汇编语言指令转换为机器代码指令,并生成一个“.obj”文件(目标文件)和一个“.lst”文件(列表文件)。它也被称为源文件,这就是为什么一些汇编程序要求此文件具有“src”扩展名的原因。“lst”文件是可选的。它对程序非常有用,因为它列出了所有的操作码和地址以及汇编程序检测到的错误。

汇编程序需要称为链接的第三步。链接程序获取一个或多个目标文件,并生成一个扩展名为“abs”的绝对目标文件。

接下来,“abs”文件被馈送到一个名为“OH”(对象到十六进制转换器)的程序,该程序创建一个扩展名为“.hex”的文件,准备烧入 ROM

三、数据类型

8051单片机包含单一的 8 位数据类型,每个寄存器也是 8 位大小。程序员必须分解大于 8 位(00 到 FFH,或十进制的 255)的数据,以便 CPU 可以处理这些数据。

DB(定义字节)

DB 指令是汇编程序中使用最广泛的数据指令。它用于定义 8 位数据。它还可用于定义十进制、二进制、十六进制或 ASCII 格式的数据。对于十进制,十进制数后的“D”是可选的,但对于“B”(二进制)和“Hl”(十六进制)是必需的。

要指示 ASCII,只需将字符放在引号中('like this')。汇编器会自动为数字/字符生成 ASCII 代码。DB 指令是唯一可用于定义大于两个字符的 ASCII 字符串的指令;因此,它应该用于所有 ASCII 数据定义。下面给出了一些 DB 的例子:

ORG  500H

DATA1: DB 28 ;DECIMAL (1C in hex)

DATA2: DB 00110101B ;BINARY (35 in hex)

DATA3: DB 39H ;HEX

ORG 510H

DATA4: DB "2591" ;ASCII NUMBERS

ORG 520H

DATA6: DA "MY NAME IS Michael" ;ASCII CHARACTERS

ASCII 字符串周围可以使用单引号或双引号。DB 还用于以字节大小的块分配内存。

四、汇编指令

8051 的一些指令如下:

ORG (origin) - origin 指令用于指示地址的开头。它采用十六进制或十进制格式的数字。如果在数字后提供 H,则数字被视为六进制,否则为十进制。汇编程序将十进制数转换为十六进制数。

EQU (equate) - 用于定义一个常量而不占用内存位置。EQU 将一个常量值与一个数据标签相关联,以便该标签出现在程序中,它的常量值将替换该标签。在执行指令“MOV R3,#COUNT”时,寄存器 R3 将加载值 25(注意 # 符号)。使用 EQU 的好处是程序员可以改变一次,汇编器会改变它的所有出现;程序员不必搜索整个程序。

END 指令- 它表示源 (asm) 文件的结尾。END 指令是程序的最后一行;END 指令之后的任何内容都被汇编程序忽略。

五、汇编语言中的标签

汇编语言中的所有标签必须遵循以下规则:

每个标签名称必须是唯一的。汇编语言编程中用于标签的名称由大小写字母、数字 0 到 9 和特殊字符如问号 (?)、句点 (.)、@、下划线 (_)、和美元($)。第一个字符应该是字母字符;它不能是一个数字。保留字不能用作程序中的标签。例如,ADD 和 MOV 字是保留字,因为它们是指令助记符。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6036

    文章

    44556

    浏览量

    635029
  • 汇编语言
    +关注

    关注

    14

    文章

    409

    浏览量

    35802
收藏 人收藏

    评论

    相关推荐

    单片机编程之汇编语言基础-常用指令和程序模式

    单片机编程分为单片机C语言编程和单片机汇编语言编程两种类型
    发表于 07-26 10:18 1.5w次阅读
    <b class='flag-5'>单片机</b>编程之<b class='flag-5'>汇编语言</b>基础-常用<b class='flag-5'>指令</b>和程序模式

    单片机编程之汇编语言基础-PIC单片机汇编指令

    PIC单片机汇编语言编程教程,其中PIC单片机的两条伪指令为:EQU(标号赋值伪指令)ORG(地址定义伪
    发表于 07-26 11:32 3084次阅读

    MCS-51单片机指令系统和汇编语言程序实例

    MCS-51单片机指令系统和汇编语言程序实例 介绍MCS-51的指令系统和汇编语言编程,了解处理器的软件资源3.1 MCS-51
    发表于 03-18 22:28 457次下载
    MCS-51<b class='flag-5'>单片机</b><b class='flag-5'>指令</b>系统和<b class='flag-5'>汇编语言</b>程序实例

    单片机指令系统与汇编语言程序设计_从零开始学习单片机系列

    【从零开始学习单片机系列】第02章单片机指令系统与汇编语言程序设计
    发表于 01-06 17:57 0次下载

    51单片机汇编语言教程:单片机数据传递类指令

    51单片机汇编语言教程:9课单片机数据传递类指令
    发表于 01-19 15:25 0次下载

    51单片机汇编语言教程_单片机寻址方式与指令系统

    51单片机汇编语言教程:8课单片机寻址方式与指令系统
    发表于 01-19 15:25 0次下载

    51单片机汇编语言教程_单片机并行口结构

    51单片机汇编语言教程:6课单片机并行口结构
    发表于 01-19 15:26 0次下载

    51单片机汇编语言教程_单片机汇编课程简介

    51单片机汇编语言教程:1课单片机汇编课程简介
    发表于 01-19 15:27 0次下载

    51单片机汇编语言指令教程汇集1

    51单片机汇编语言指令教程通俗易懂 适合初学者。
    发表于 05-20 11:05 8次下载

    PIC单片机指令系统和汇编语言程序设计

    PIC单片机指令系统和汇编语言程序设计,快来下载吧
    发表于 09-01 18:17 0次下载

    PIC8位单片机汇编语言常用指令的识读

    PIC8位单片机汇编语言常用指令
    发表于 12-07 15:04 2次下载

    AVR单片机结构汇编语言简析

    单片机那么久了,感觉想要深入,还得看汇编语言,至少得了解单片机内部结构。 下面就以ATmega16为例,介绍一下AVR单片机结构
    发表于 12-03 17:37 1313次阅读
    AVR<b class='flag-5'>单片机</b><b class='flag-5'>结构</b>和<b class='flag-5'>汇编语言</b>简析

    单片机 | 基础汇编语言编程实例

    单片机汇编语言编程
    的头像 发表于 06-05 18:04 1w次阅读

    51单片机汇编语言指令的资料合集免费下载

    本文档的主要内容详细介绍的是51单片机汇编语言指令的资料合集免费下载。
    发表于 11-03 08:00 8次下载

    MCS-51单片机汇编语言程序设计

    文章目录前言一、汇编的方法1.手工汇编:2.机器汇编:二、伪指令一、汇编语言指令
    发表于 11-05 12:21 32次下载
    MCS-51<b class='flag-5'>单片机</b><b class='flag-5'>汇编语言</b>程序设计