首页 理论教育 8051单片机汇编语言中常用的伪指令及其功能

8051单片机汇编语言中常用的伪指令及其功能

时间:2023-11-02 理论教育 版权反馈
【摘要】:不同的伪指令功能有所不同,但基本用法是相似的。下面介绍在8051单片机汇编语言中常用的伪指令。在一个源程序中可以多次使用ORG指令,以规定不同程序段的起始位置。3)DATA伪指令可将一个表达式的值赋给一个字符变量,所定义的字符变量也可以出现在表示式中,而EQU定义的字符则不能。

8051单片机汇编语言中常用的伪指令及其功能

每种汇编语言都有自己的伪指令,用来向汇编源程序发出指示信息,告诉它如何完成汇编工作,或者对符号或标号赋值。伪指令和指令是完全不同的,伪指令不是执行的指令,在汇编时起控制作用,只在源程序中出现,自身并不产生机器代码,是为汇编服务的一些指令。

伪指令具有控制汇编程序输入/输出、定义数据和符号、条件汇编以及分配存储空间等功能。不同的伪指令功能有所不同,但基本用法是相似的。

下面介绍在8051单片机汇编语言中常用的伪指令。

1.ORG汇编起始地址命令

汇编起始地址命令的功能是规定目标程序的起始地址。如果不用ORG规定,则汇编得到的目标程序将从0000H地址开始。

格式:ORG 16位地址

规定了START所在的地址为1000H,该指令就从1000H开始存储。

在一个源程序中可以多次使用ORG指令,以规定不同程序段的起始位置。但所规定的地址应该从小到大,不能交叉也不能重叠。

若按下面的顺序排列则是错误的,因为地址出现了交叉。

2.END汇编结束命令

END是汇编语言源程序的结束标志,用于终止源程序的汇编工作,出现END指令时,说明把源程序翻译成指令代码的工作到此为止。因此,在整个源程序中只能有一条END命令,且位于源程序的最后。如果END指令出现在源程序中间,则编译器将不会汇编其后面的程序。

3.EQU等值命令

EQU是将一个数或者特定的汇编符号赋予规定的字符名称,用于给标号赋值。

格式:字符名称EQU数或汇编符号

用EQU指令赋值以后的字符名称可作为数据地址、代码地址、位地址或者一个立即数来使用。

4.DATA数据地址赋值命令

DATA命令将数据地址或代码地址赋予规定的字符名称。

格式:字符名称DATA表达式

DATA伪指令的功能与EQU有些相似,它们有以下区别:

1)EQU伪指令必须先定义后使用,而DATA伪指令则无此限制(即DATA用来定义变量,而EQU用来定义常量)。(www.xing528.com)

2)用EQU伪指令可以把一个汇编符号赋给一个字符名称,而DATA伪指令则不能。

3)DATA伪指令可将一个表达式的值赋给一个字符变量,所定义的字符变量也可以出现在表示式中,而EQU定义的字符则不能。DATA伪指令在程序中常用来定义数据地址。

5.DB定义字节命令

DB命令是从指定的地址单元开始,定义若干单字节内存单元的内容。

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

DB指令是在汇编时告诉编译器从指定的地址单元开始,定义若干字节存储单元,并将指定的数据或数据表赋予这些存储单元。注意,数据表中各字节数据用逗号分隔,如果是字符数据还需要用单引号标注起来,数据可以是二进制、十六进制和ASCII码,DB指令在汇编语言程序中可以多次使用。

6.DW定义数据字命令

格式:[标号:]DW 16位二进制数表

本命令用于从指定的地址开始,在程序存储器的连续单元中定义16位的数据字。一个16位的数据要占据存储器的两个字节,其中高8位数存入低地址字节,低8位数存入高地址字节。若不足16位,高位用0填充。

7.DS定义空间命令

DS定义空间命令是从指定的地址开始,保留若干个字节的内存空间作为备用。

格式:[标号:]DS表达式

在汇编后,将根据表达式的值来决定从指定的地址开始留出多少个字节空间,表达式也可以是一个指定的数值。

汇编后,从0600H开始保留6个字节单元,从0606H开始按照下一条DB命令给单元赋值,即(0606H)=36H,(0607H)=A1H。保留空间的用途将由程序决定。

DB、DW和DS伪指令都只对程序存储器起作用,不能用来对数据存储器的内容进行赋值或初始化

8.BIT位地址符号命令

格式:字符名称BIT位地址

需要说明的是,并非所有汇编程序都有这条伪指令,若不具备BIT命令时,则可以用EQU命令定义地址变量,但所赋的值必须是位地址。例如,P1.0要用地址90H来代替。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈