MPLAB XC16汇编器伪指令详解:填充程序存储器

需积分: 50 27 下载量 113 浏览量 更新于2024-08-09 收藏 2.8MB PDF 举报
"MPLAB® XC16汇编器、链接器和实用程序用户指南" 在微控制器编程中,特别是使用MPLAB® XC16编译器时,程序员经常需要处理程序存储器的填充问题以优化代码布局和对齐。本文档详细介绍了三种填充伪指令,用于在代码段中填充特定字节值,以满足内存对齐或数据定义的要求。这些伪指令分别是`.fillupper`、`.fillvalue`和`.pfillvalue`。 1. `.fillupper`伪指令: 此伪指令用于在代码段中填充高字节(bit 16-23)。当由于对齐或数据定义伪指令(如`.align`、`.ascii`等)导致需要跳过高位字节时,`.fillupper`定义了这些空位的填充值。如果不指定`value`,默认填充值为0x00。这个值在整个源代码文件中对特定代码段保持持久,可以通过再次使用`.fillupper`伪指令来改变填充值。 2. `.fillvalue`伪指令: 这个伪指令涉及填充低位字(bit 0-15)。当遇到如`.align`、`.fill`等指令需要跳过低位字时,`.fillvalue`定义了填充的字节值。同样,默认值是0x0000,可以随时通过再次调用`.fillvalue`来修改填充字节。 3. `.pfillvalue`伪指令: `.pfillvalue`适用于填充程序字(bit 0-23)。在处理p伪指令(如`.palign`、`.pfill`等)时,如果需要填充存储器,此伪指令定义了填充的字节值。如果没有指定`value`,则默认值为0x000000。与前两者一样,`.pfillvalue`的值在源代码文件中也是持久的,并可通过再次使用该伪指令来更改。 这些伪指令的使用有助于确保代码在目标硬件上的高效执行,通过精确控制内存空间的占用和对齐,可以优化程序运行速度和内存利用率。同时,它们允许程序员在编译期间更灵活地管理内存布局,以适应不同的硬件限制和性能需求。 请注意,Microchip Technology Inc. 提供的文档和工具是英文原版,中文版本仅供参考。使用这些工具进行开发时,应以英文文档为准,以获取最准确的信息和最新的更新。同时,对于使用Microchip产品在生命维持和/或生命安全应用中的风险,购买者需自行承担,Microchip对此类应用不提供任何保证或责任。最后,所有知识产权都受保护,未经授权的许可转让是禁止的。