ARM THUMB规程调用标准A-05与B-01对比详解

需积分: 11 5 下载量 71 浏览量 更新于2024-07-18 收藏 166KB PDF 举报
ARM THUMB程序调用标准(ARM ATPCS)是针对ARM和THUMB指令集的一系列程序调用规范,该标准自初始版本A-05(即ADS-1.0)发布以来,经过了多次修订,如B-01(ADS-1.1)。主要修订集中在参数传递的描述上,尽管A-05版本在大多数情况下可以无障碍实施,但B-01版通过更精确的规定来处理先前可能出现的困难情况。 该标准的主要目标包括与IEEE 754浮点运算标准的精确交互,以及对C、C++和Java等高级语言源代码实体与机器级别参数传递值之间的映射进行更明确的规定。这意味着开发者在编写跨平台代码时,需要了解标准如何处理不同类型的参数,尤其是在涉及浮点数据和函数调用时的内存管理。 ARM THUMB程序调用标准定义了调用过程的基本结构,包括使用哪些寄存器(如通用寄存器和可能的浮动点寄存器),以及如何在子程序调用时进行参数传递。对于参数传递,标准提供了两种主要方式:按值传递(value passing)和按引用传递(reference passing)。按值传递意味着参数的副本会被复制到栈帧中,而按引用传递则仅传递指针,由调用者负责管理实际数据。 在栈的使用上,标准规定了调用过程前后堆栈的状态,包括调用者和被调用者之间的内存分配。此外,标准还强调了预条件和后条件的重要性,即在调用前必须满足的条件和调用后期望的结果。 基础标准部分详细地介绍了机器寄存器的使用,特别是那些在程序调用过程中至关重要的寄存器,如程序计数器(PC)和链接寄存器(LR)。这部分内容对于理解程序控制流转移和异常处理至关重要。 ARM THUMB程序调用标准是软件开发人员在设计和实现ARM和THUMB架构下可移植程序时不可或缺的参考文档,它确保了代码的兼容性和性能优化,特别是在涉及跨平台接口和不同编程语言时。通过遵循该标准,开发者可以确保其代码能够正确地在各种硬件配置上运行,并能高效地处理各种数据类型和调用约定。