5.2.3 寄存器保存约定


文档摘要

5.2.3 寄存器保存约定 在嵌入式系统与底层软件开发的世界里,寄存器保存约定从来不是教科书上一句轻描淡写的“调用者负责r0–r3,被调用者负责r4–r11”就能了事的规则。它是一条隐秘却不可逾越的契约——横亘于函数边界之间,无声地维系着栈帧的完整性、局部变量的可重现性、以及整个程序状态的确定性。当你在裸机环境下调试一个因 值突变而崩溃的中断服务例程;当你在ARM Cortex-M3上发现 返回后 (即 )已被篡改,导致回溯失败;又或者你在GCC内联汇编中手动调用 却忘了保存 ,结果 跳转到一片未初始化内存——这些都不是玄学故障,而是寄存器保存约定在你耳边发出的尖锐警报:你正在违反AAPCS(ARM Architecture Procedure Call Standard)第5.2.


发布者: 作者: 转发
评论区 (0)
U