在ARM汇编语言中,内置变量和常数是编程过程中重要的组成部分,它们在ARM汇编程序的执行环境中起到关键作用。《内置变量和常数-tja1050数据手册》详细介绍了在ARM汇编程序中定义的一系列内置变量,这些变量用于存储和管理程序执行时的各种信息。
1. **内置变量**:
- `{ARCHITECTURE}`:存储当前选择的ARM体系结构名称,如ARM7TDMI。
- `{AREANAME}`:反映当前区域的名称,有助于管理程序的不同部分。
- `{ARMASM_VERSION}`:记录与`armasm`编译器版本相关的整数值,与`ads$version`变量功能相同。
- `{CODESIZE}`:等同于`{CONFIG}`,表示编译目标代码的大小,如32位或16位。
- `{COMMANDLINE}`:存储命令行参数,方便访问用户输入的配置信息。
- `{CONFIG}`:指示是否正在汇编ARM或Thumb代码,其值分别为32或16。
- `{CPU}`:默认为ARM7TDMI,可被命令行中的`--cpu`选项更改为“Generic ARM”。
- `{ENDIAN}`:标识当前汇编器的工作模式,即大端(big)或小端(little)字节序。
- `{FPIC}`、`{RWPI}`和`{ROPI}`:标志是否启用浮点寄存器保护,True表示已启用,False表示未启用。
- `{FPU}`:选择的浮点处理器名称,默认为SoftVFP。
- `{INPUTFILE}`:存储当前正在处理的源文件名。
- `{INTER}`:指示是否启用了交互模式,True表示已启用。
- `{LINENUM}`:指示源文件当前行号的整数值。
- `{OPT}`:记录当前使用的列表选项值,可以保存、修改或恢复选项。
- `{PC}` 和 `.`:代表当前指令的地址。
- `{PCSTOREOFFSET}`:与存储输出地址相关,不同CPU架构有不同的偏移量。
2. **常数**:
- `{CODESIZE}`和`{CONFIG}`作为同义词,表明在不同的编译条件下可能有不同的数值。
- `{ARMASM_VERSION}`:虽然称为常数,但它的值会随着`armasm`版本的更新而增加。
3. **文档背景**:
- 该手册属于RealView编译工具的汇编程序指南,由ARM Limited出版,版权自2002年至2007年。
- 手册中提供了版本信息、所有权声明、保密状态和产品状态,强调了文档内容的非保密性和可能存在的许可限制。
- 更改历史记录展示了手册从1.2版到3.1版的迭代过程,以及与RealView Development Studio (RVDS)的版本同步。
4. **手册内容结构**:
- 后面的内容还涉及到手册的目录,介绍了前言、反馈渠道以及后续章节,如介绍编写ARM汇编程序的基础知识。
这本手册对于理解和使用ARM汇编语言中的内置变量和常数至关重要,它不仅列出了这些变量的功能和用途,还提供了如何在实际编程中应用它们的指导。对于开发者来说,熟悉这些内置元素能够提高代码的效率和可维护性。