新浪博客

汇编语言伪指令

2010-07-07 14:24阅读:
1、ORG(起始汇编)伪指令
ORG伪指令称为起始汇编伪指令,常用于汇编语言源程序或数据块的开头,用来指示汇编程序开始对源程序进行汇编。其格式为:ORG 16位地址或标号
2、END(结束汇编)伪指令
END伪指令成为结束汇编伪指令,常用于汇编语言源程序末尾,用来指示源程序到此全部结束。其格式为:[标号:] END 上述格式中,标号段通常省略。在机器汇编时,当汇编程序检测到该语句时,他就确认汇编语言源程序已经结束,对 END 后面的指令不予汇编。因此,一个源程序只能有一个END语句,而且必须放在整个程序的末尾。
3、EQU(赋值)伪指令
EQU 伪指令成为赋值(Equate)伪指令,用于给他左边的“字符名称”赋值。EQU 伪指令格式为:字符名称 EQU 数据或汇编符 一旦“字符名称”被赋值,他就可以在程序中作为一个数据或地址来使用。因此,“字符名称”所赋的值可以是一个8位数据或地址,也可以是一个16位二进制数或地址。 EQU 伪指令中的“字符名称”必须先赋值后使用,故该语句通常放在源程序的开头。
4、DATA(数据地址赋值)伪指令
DATA伪指令称为数据地址赋值伪指令,也用来给他左边的“字符名称”赋值。其指令格式为:字符名称 DATA 表达式 DATA 伪指令功能和 EQU 伪指令类似,他可以把 DATA 右边“表达式”的值赋给左边的“字符名称”。这里表达式可以是一个数据或地址,也可以是一个包含所定义“字符名称”在内的表达式,但不可以是一个汇编符号(如R0-R7)。DATA 伪指令和EQU 伪指令的主要区别是:EQU 定义的“字符名称”必须先定义后使用,而 DATA 定义的“字符名称”没有这种限制,故 DATA伪指令通常用在源程序的开头或末尾。
5、DB(定义字节)伪指令
DB (Define byte)伪指令称为定义字节伪指令,可用来为汇编语言源程序在内存的某区域中定义一个或一串字节。其指令格式为:[标号:] DB 项或项表 其中,标号段为任选项,DB 伪指令能把他右边 “项或项表”中数据依次存放到以左边标号为始址的存储单元中。
6、DW (定义字)伪指令
DW(Dfine word)称为定义字伪指令,用于为源程序在内存某个区域定义一个或一串字。相应位指令格式为:[标号:] D
W 项或项表 其中,标号段为任选项。DW伪指令的功能和DB伪指令的类似,其主要区别在于DB定义的是一个字节,而DW 定义的是一个字(两个字节),因此DW 主要用来定义一个16位的地址(高8位在前,低8位在后)
7、DS (定义存储空间)伪指令
DS(Dfine storage) 称为定义存储空间伪指令。DS的格式为:[标号:] DS 表达式 上述格式中,标号段也为任选项,“表达式”常为一个数值。DS语句可以指示汇编程序从它的标号地址(或实际物理地址)开始预留一定数量的内存单元,以备源程序执行过程中使用。这个预留单元的数量由DS语句中“表达式”的值决定。汇编程序对源程序汇编时,碰到DS语句便自动从SPC (标号)地址开始预留 M(表达式的值)个连续内存单元。
8、BIT (位地址赋值)伪指令
BIT 称为位地址赋值伪指令,用于给以符号形式的位地址赋值。BIT 伪指令的格式为: 字符名称 BIT 位地址 该语句的功能是把BIT右边的位地址赋给它左边的“字符名称”。因此,BIT 语句定义过的“字符名称”是一个符号位地址。不是所有的汇编程序都允许有 BIT 这条伪指令语句。在无 BIT 伪指令语句可用时,用户也可以采用 EQU 语句来定义位地址变量,但 EQU 语句右边必须采用物理地址,而不采用像P1.0那样的符号地址。
RSEG是段选择指令,要想明白它的意思就要了解段的意思。
段是程序代码或数据对象的存储单位。程序代码放到代码段,数据对象放到数据段。段分两种,一是绝对段,一是再定位段。绝对段在汇编语言中指定,在用L51联接的时候,地址不会改变。用于如访问一个固定存储器的I/O或提供中断向量的入口地址。而再定位段的地址是浮动的。它的地址有L51对程序模块连接时决定,C51对源程序编译所产生的段都是再定位段,它都有段名和存储类型。绝对段没有段名。
A51中有两种段选择指令:再定位段选择指令和绝对段选择指令。它们用来选择当前段是再定位段还是绝对段。使用不同的段选择指令,将使程序定位在不同的地址空间之内。
1、再定位段的选择指令是:RSEG 段名
它用来选择一个在前面已经定义过的再定位段作为当前段。
用法:先申明了一个函数段,后面写这个函数段。
2、绝对段选择指令
CSEG [AT 绝对地址表达式] //绝对代码段
DSEG [AT 绝对地址表达式] //内部绝对数据段
XSEG [AT 绝对地址表达式] //外部绝对数据段
ISEG [AT 绝对地址表达式] //内部间接寻址绝对数据段
BSEG [AT 绝对地址表达式] //绝对位寻址段

我的更多文章

下载客户端阅读体验更佳

APP专享