阅读一些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<picreg.h>