购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4.2 伪指令

伪指令是为汇编程序提供某种信息的指令。伪指令不能命令CPU执行某种操作,也没有对应的机器代码,而51系列单片机的指令能使单片机的CPU执行某种操作,能生成对应的机器代码。51系列单片机汇编程序常用的伪指令有如下几类。

4.2.1 汇编程序起始伪指令ORG

汇编程序起始伪指令ORG主要用于规定汇编程序块或数据块存放的起始地址,它的使用格式如下:

[标号:] ORG 16位地址

示例如下:

这个例子中,伪指令ORG规定了程序的第一条指令从地址0200H单元开始存放,即标号START的值为0200H。

在一个汇编语言源程序的开始部分,通常都要放置一条ORG伪指令来指定该程序代码在存储器中存放的起始地址。若省略ORG伪指令,则程序代码将从0000H单元开始存放。

注意 :在一个汇编语言源程序中,可以多次使用ORG伪指令,以规定不同程序段或数据段存放的起始地址,但所规定的地址应该是从小到大排序的,而且绝对不允许有重叠区域。

4.2.2 汇编程序结束伪指令END

汇编程序结束伪指令END是汇编语言源程序的结束标志。END伪指令的使用格式如下:

[标号:] END [表达式]

在程序中,END之后所写的任何指令,汇编程序都不予以处理。一个源程序只能有一个END伪指令。对于同时包含有主程序和子程序的汇编源程序中,同样也只能有一个END伪指令。

4.2.3 等值伪指令EQU(或=)

等值伪指令EQU是将一个数或特定的汇编符号赋予规定的字符名称。它的使用格式如下:

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

或者如下:

字符名称 =数据或汇编符号

用EQU指令赋值后的字符名称可以用做数据地址、代码地址、位地址或当做一个立即数来使用。因此,给字符名称所赋的值可以是8位数,也可以是16位数。需要注意的是,这里使用的“字符名称”不是标号,不能用“:”作为分隔符。

等值伪指令EQU的使用示例代码如下:

在这段程序中,DX赋值后当做直接地址使用,而DA则被定义为16位地址,作为一个子程序的入口被调用。

使用等值伪指令EQU时,需要注意以下事项。

●使用伪指令EQU时必须先赋值后使用,而不能先使用后赋值;

●用EQU定义的字符名称不能和汇编语言的关键字同名;

●用EQU定义的符号不允许重复定义,而“=”定义的符号允许重复定义。

4.2.4 数据地址赋值伪指令DATA

数据地址赋值伪指令DATA是将数据地址或代码地址赋予规定的字符名称。其使用格式如下:

字符名称 DATA 表达式

DATA伪指令的功能与EQU有些相似,使用时要注意它们有以下区别。

●EQU伪指令必须先定义后使用,而DATA伪指令则无此限制;

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

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

4.2.5 定义字节伪指令DB

定义字节伪指令DB是从标号指定的地址单元开始,将数据表中的字节数据按顺序依次保存。其使用格式如下:

[标号:] DB 8位字节数据表

这里的数据表可以是一个或多个字节数据、字符串或表达式,各项数据用“,”分隔,一个数据项占一个存储单元。定义字节伪指令DB的使用示例代码如下:

以上伪指令经汇编以后,将对从1000H开始的若干内存单元赋值,其中的内容如表4-1所示。

表4-1 内存单元内容

在这里,十进制数60和二进制数111B均转换为十六进制数来表示,用单引号引起来的字符以ASCII码存入,如果遇到负数,则按补码存入。

4.2.6 定义字伪指令DW

定义字伪指令DW是从标号指定的地址单元开始,将数据表中的字数据按从左到右的顺序依次保存。其使用的格式如下:

[标号:] DW 16位字数据表

DW的功能和DB类似,需要注意的是,16位数据要占用两个单元的存储器,其中,高8位数据存入低地址字节,低8位数据存入高地址字节。定义字伪指令DW的使用示例代码如下:

以上伪指令经汇编以后,将对从1000H开始的若干内存单元赋值,其中的内容如表4-2所示。

表4-2 内存单元内容

4.2.7 定义空间伪指令DS

定义空间伪指令DS是从标号指定的地址单元开始,保留若干个存储单元作为备用的空间。其中,保留的数量由表达式指定。其使用格式如下:

[标号:] DS表达式

定义空间伪指令DS的使用示例代码如下:

该段伪指令经汇编以后,从地址1000H开始保留7个内存单元,然后从1007H开始才可以进行其他操作。

注意 :DB、DW、DS伪指令只能对程序存储器进行定义,不能对数据存储器进行操作。DB伪指令常用来定义数据,DW伪指令常用来定义地址。

4.2.8 位地址符号伪指令BIT

位地址符号伪指令BIT,主要用于对位地址赋予所规定的字符名称。其使用格式如下:

字符名称 BIT位地址

位地址符号伪指令BIT的使用示例代码如下:

该段伪指令经汇编以后,将位地址P2.0和P2.1分别赋给P20和P21,此后可以将P20和P21当做位地址来代替P2.0和P2.1。 xp2RixmeyI1JqXPl1+NQodJfuz4CDyGnjhsXOowD7Hp+MyFYQv0VcZvYlA47QaVZ

点击中间区域
呼出菜单
上一章
目录
下一章
×