MPASM 伪指令.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MPASM 的伪指令 我们在第一章中已经详细介绍了中档PIC 单片机的35 条指令,源程序的编写主要就是 用这些基本的指令实现你的控制任务。但为了增加源程序的可读性和可维护性,我们引入了 伪指令的概念。伪指令本身不会产生可执行的汇编指令,但它们可以帮组“管理”你编写的 程序,其实用性和必要性绝不亚于35 条正真的汇编指令。我们在此着重介绍最常用的几种 伪指令。 z #i nclude 或 include #i nclude 伪指令的作用是把另外一个文件的内容全部包含复制到本伪指令所在的位置。 被包含复制的文件可以是任何形式的文本文件,当然文件中的内容和语法结构必须是 MPASM 能够识别的。最经常被“include”的是针对PIC 单片机内部特殊功能寄存器定义的 包含头文件, 在MPLAB 安装后它们全部放在路径“ C:\Program Files\MPLAB IDE\MCHIP_Tools”下,每一个型号的PIC 单片机都有一个对应的预定义包含头文件,扩展 名是“.inc”。除了一些符号预定义文件,你也可以把现有的其它程序文件作为一个代码模块 直接“包含”进来作为自己程序的一部分。见例3-01。 #i nclude p16f877a.inc ;把预定义的PIC16F877A 寄存器符号包含到此处 #i nclude ”math.asm” ;把现有的程序文件包含进来作为自己代码的一部分 例3-01 请注意被包含文件的引用方式。一种是尖括号引用,这种引用意味着让编译器去默 认的路径下寻找该文件,MPASM 默认的寄存器预定义文件存放路径即为上面提及的 MPLAB 安装后的目录;另一种是””双引号引用,这种引用方式的意思是指示编译器从引号 中指定的全程文件路径下寻找该文件。例3-01 中”math.asm”没有指定路径,即意味着在 当前项目路径下寻找math.asm 文件。如果编译器找不到被包含的文件,将会有错误信息告 知。 请在你的源程序中尽量用MPLAB 标准头文件定义的寄存器符号。一来这些被定义的寄 存器符号和芯片数据手册上的描述一一对应,理解起来即直观又容易;二来如果用你自己定 义符号就缺乏一个大家能一起交流的标准平台,其他人要解读你的代码时将费时费力。故例 3-01 中的首行#i nclude 包含引用伪指令可以说是PIC 单片机程序编写时的标准必备。 z list list 伪指令可以设定程序编译时的一些信息,例如所选单片机的型号,编译时选择的缺 省数制等。例如: list p=16f877a, r=DEC ;单片机型号为PIC16F877A,无特别指明的数字为十进制数 例3-02 如果程序开发时使用项目管理的模式,则所有list 伪指令可以描述的参数项都可以在项 目的设定选项中通过对话框的形式设定并保存。在此只需对list 伪指令稍作了解即可。 z __config 此伪指令的重要作用是把芯片的配置字设定在源程序中,请参阅2.5 节的详细说明。建 议大家尽量用此伪指令把芯片的配置字写在程序中。 z __idlocs PIC 单片机中有一处非常特殊的标记单元。它独立于任何其它存储器,唯一的作用就是 作为一个标记。此标记值无法用软件读到,读取和写入的方法只有通过编程器实现。此标记 值没有读保护,你可以利用它存放程序的版本或日期等信息。如果需要,则可以用伪指令 __idloc 在程序中定义具体的值。 __idloc 0x1234 ;设定芯片的标记值为0x1234,注意前面有两个下划线符 例3-03 和__config 伪指令定义的配置字一样,用__idloc 定义的芯片标记值在最后也会存放在 HEX 文件中,这就要求编程器能够解析它。 z errorlevel errorlevel 的用途是控制编译信息的输出显示。编译器在编译你的源程序时会提供很多 信息,有些信息是你必须要处理的,例如错误信息(Error),只要有错误信息存在,你的程 序将永远无法完成编译;有些可能只需要关注,例如警告信息(Warning);也有一些可能你 根本就不感兴趣,它们只是一些提示信息(Message)而已。注意出现警告和提示信息时将 不会中止编译器的编译工作,你的程序将被编译并最终产生HEX 文件。图3-14 中显示了一 个程序编译后的各种信息实例,其中既有错误信息,也有警告和提示信息。我们可以用 errorlevel 伪指令来控制输出信息的级别,或刻意关闭/打开一些提示信息。 编译信息的输出显示级别有三种,分别是0、1 和2。级别0 代表显示所有信息,包括 各种错误、警告和提示信息,如图3-14 所示;级别1 代表显示错误和警告信息,忽略提示 信息;级别3 代表只显示错误信息而忽略警告和提示信息。在任何一个大的级别上还可以对 某些信息单独设定显

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档