阅读一些PIC单片机的源程序开始段,会发现有一些特殊指令助记符,这些助记符与指令系统的助记不同,没有相对应的操作码,通常称这些特殊指令助记符为伪指令。
伪指令在源程序中的作用是为完成汇编程序作各种准备工作的(实际上是给PC机汇编的注释),这些伪指令仅在汇编过程中起作用,一旦汇编结束,伪指令的使命就完成。
在汇编程序MPASM中,有四类伪指令:数据伪指令、列表伪指令、控制伪指令和宏汇编指令。
现在,我们将对前两类中的常用伪指令予以说明,后两类伪指令等到在具体程序中出现时,再加以说明。
(1)ORG 存放单元起始地址
格式:<标号>ORG<地址表达式>
说明:ORG用于指定该伪指令后面的源程序存放的起始地址,也就是汇编后的目标机器码存放的首地址。若ORG后面不带地址参数,则默认为0。若ORG带标号,则地址参数也赋值给该标号。在一个源程序中,可以根据需要多次使用ORG伪指令来定位。
例:ORG 1FFH DELAY
GOTO MAIN MOVLM 2
;…… ……
ORG 0 END
右排接左
说明:指令末的伪指令END是通知汇编程序MPASM结束对源程序(ASM)的汇编,即使后面还有语句,也不再予以汇编。在一个源程序中必须有END伪指令,而且只能有一个END,且放在整个程序的最后。
(2)EQU 是对寄存器f和标号赋值
格式:<标号>EQU<表达式>
说明:给标号或寄存器赋值,标号一旦由EQU赋值,其值便不能再重新定义。
举例:label EQU 0x20
注意:这里操作数中的0x表示十六进制,即0x20相当于20H。
(3)LIST 列表选择指令
格式:LIST<选择项>,…,<选择项>
说明:用来设置各种汇编参数以控制汇编过程,或对列表文件进行格式化。此伪指令的所有参数只能在一行内完成,参数的数值都用十进制数设置。
LIST列表选择伪指令可以选用的部分参数如下。
参数名 默认值 作 用
f=<格式> 1NHX8M;规定固化编程文件格式(INHX16,INHX32或INHX8M)1NHX8M适于把目标码输入到大多数的EPROM编程器中。
P=<类型> 无 设置单片机类型,如16F84
r=<基数> HEX 设置常数数制的基数(如hex十六进制;dec十进制等)
例:LIST f=1NHX8M,r=DEC,P=16F84
(4)PROCESSOR<处理器类型>
说明:用于选择所用单片机的型号。
(5)INCLUDE 包含其它外部源文件
格式:INCLUDE “文件名”
INCLUDE <文件名>
说明:用于把指定文件读入源程序中作为源程序代码的一部分,直到检测到文件结束符时为止,再恢复到原源程序中的代码处。此伪指令可允许嵌套使用,最多可嵌套6层。文件名必须用双引号或尖括号给出。
举例:include “c:\PIC\sysdefs.inc”
include