当前位置:首页 > 单片机 > 单片机
[导读]汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。

MCS 51 指令系统中每一条指令都是用意义明确的助记符来表示的,这种由指令的助记符、符号地址、标号等书写的程序称为汇编语言程序。

汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。

汇编语言程序设计是开发计算机应用系统的基本功。本章将通过一些基本程序,介绍部分常用的程序设计方法。

伪指令

我们知道,计算机只认识机器指令(二进制编码), 因此应用系统中必须把汇编语言源 程序通过汇编程序翻译成机器语言程序( 目标程序),计算机才能执行,这个翻译过程称为 汇编。汇编程序在汇编过程中,必须要提供一些专 门 的指令,这些指令在汇编 时并不产生 目标代码,不影响程序的执行,所以称为伪指令 。下面介绍几种常用的伪指令。

一、汇编起始指令 ORG

指令格式为:

ORG nn

该指令的作用是指明后面的程序或数据块的起始地址,它总是出现在每段源程序或数 据块的开始。式中,nn 为 16 位地址,汇编时 nn 确定了此语句后面第一条指令或第一个数 据 的地址,此后的源程序或数据块就依次连续存放在以后的地址内,直到遇到另一个 ORG 指令为止。例:

ORG 2000H

MOV SP ,# 60H

MOV R0 ,# 2FH

MOV R2 ,#0FFH

ORG 伪指令说明其后面程序的目标代码在存储器中存放的起始地址是 2000H ,即

二、等值指令 EQU

指令格式:

字符名称 EQU 数字或汇编符号

功能:使指令中的字符名称等价于给定的数字或汇编符号。

使用等值指令可给程序的编制、调试、修改带来方便,如果在程序中要多次使用到某一地址 ,由 EQU 指令将其赋值给一个字符名称,一旦需要对其进行变动 ,只要改变 EQU 命令后面的数字即可,而不需要对程序中涉及到该地址的所有指令逐句进行修改。但要注意,由 EQU 等值的字符名称必须先赋值后使用,且在同一个源程序中,同一个标号只能赋值一次。例:

PA8155 EQU 8001H

即给标号 PA8155 赋值为 8001H 。

三、定义字节指令 DB

指令格式:

[标号:] DB 8 位二进制数表

功能:把 8 位二进制数表依次存入从标号开始的连续的存储单元中。

格式中,标号区段可有可无,DB 指令之后的 8 位二进制数表是字节常数或用逗号隔开的字节串 ,也可以是用引号括起 的 ASCII 码字符串 (一个 ASCII 字符相当于一个字 节)。 例:

ORG 1000H

BUF1 : DB38H ,7FH ,80H

BUF2 : DB45H ,66H

ORG 伪指令指定了标号 BUF1 的地址为 1000H ,而 DB 伪指令是将其后的二进制数表 38H 、7FH 、80H 依次存放在 1000H 、1001H、1002H3 个连续单元之中,BUF2 也是一个标号,其地址与前一条伪指令连续,即 1003H 、1004H 地址单元中依次存放 45H 、66H 。

四、定义字指令 DW

指令格式:

[标号:] DW 16 位数据表

该指令的功能与 DB 相似 ,区别仅在于从指定地址开始存放的是指令中的 16 位数据,而不是字节串。每个 16 位数据要占两个存储单元 ,高 8 位先存,低 8 位后存 ,这和 MCS 51指令中的 16 位数据存放顺序是一致的。

五、汇编结束指令 END

指令格式:

[标号:] END 地址或标号

格式中标号以及 END 后面的地址或标号可有可无。

功能:提供汇编结束标志。汇编程序遇到 END 后就停止汇编,对 END 以后的语句不予处理,故 END 应放在程序的结束处。

汇编语言, 即第二代计算机语言,用一些容易理解和记忆的缩写单词来代替一些特定的指令,例如:用"ADD"代表加法操作指令,"SUB"代表减法操作指令,以及"INC"代表增加1,"DEC"代表减去1,"MOV"代表变量传递等等,通过这种方法,人们很容易去阅读已经完成的程序或者理解程序正在执行的功能,对现有程序的bug修复以及运营维护都变得更加简单方便。但计算机的硬件不认识字母符号,这时候就需要一个专门的程序把这些字符变成计算机能够识别的二进制数或机器语言。因为汇编语言只是将机器语言做了简单编译,所以并没有根本上解决机器语言的特定性,所以汇编语言和机器自身的编程环境息息相关,推广和移植很难,但是还是保持了机器语言优秀的执行效率,因为他的可阅读性和简便性,汇编语言到现在依然是常用的编程语言之一。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭