MPLAB XC16: 汇编器伪指令详解 - 符号声明
需积分: 50 59 浏览量
更新于2024-08-09
收藏 2.8MB PDF 举报
"MPLAB® XC16汇编器、链接器和实用程序用户指南"
在编程和嵌入式系统开发中,伪指令是汇编语言中的一种特殊指令,它们并不直接影响处理器,而是被汇编器处理。在MPLAB® XC16环境中,这些伪指令用于管理内存布局和符号声明。以下是关于描述中提到的几种伪指令的详细解释:
1. **.bss symbol, length [, algn]**:
这个伪指令用于在`.bss`段中为局部符号预留空间。`.bss`段通常用于存放未初始化的数据。`length`参数定义了需要预留的字节数,而`algn`则指定了符号的对齐方式,对齐值必须是2的幂次。如果指定了对齐值,汇编器会确保分配的地址是该值的倍数。
2. **.comm symbol, length [, algn]**:
`.comm`伪指令用于声明一个共享符号,可以在链接时与其他目标文件中的同名符号合并。如果链接器找不到符号的定义,它会在运行时为这个符号分配`length`字节的未初始化内存。`algn`参数同样表示符号的对齐要求,仅在目标文件格式为ELF时才有效。
3. **.extern symbol**:
这个伪指令声明了一个全局符号,该符号在其他模块中定义,但在当前模块中使用。这允许你在当前代码中引用一个在别处定义的全局变量或函数。
4. **.global symbol** / **.globl symbol**:
这两个伪指令是等价的,用于声明一个符号在当前模块中定义,并且可以被其他模块访问。这样定义的符号将成为全局变量或函数,可供整个程序使用。
5. **.lcomm symbol, length**:
`.lcomm`伪指令用于声明一个局部的、未初始化的(在.bss段中)公共符号。`length`参数定义了符号的大小,这个符号不会被声明为全局变量,所以通常在链接时不会被看到。
这些伪指令在编写汇编代码或链接脚本时非常关键,它们帮助开发者有效地管理和组织程序的内存空间,以及确保符号的正确访问和可见性。在MPLAB® XC16汇编器中,理解并正确使用这些伪指令对于高效地编写和链接C或汇编代码至关重要。注意,由于Microchip Technology Inc.的知识产权保护,未经许可,不得擅自复制或使用相关技术。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2012-03-31 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
柯必Da
- 粉丝: 42
- 资源: 3781
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析