BL长跳转指令在电能表程序中的应用与分析

需积分: 9 1 下载量 50 浏览量 更新于2024-08-05 收藏 396KB DOCX 举报
"BL长跳转指令在电能表程序中的应用与分析" 本文档主要讨论了BL长跳转指令在电能表程序中的具体运用,特别是在执行InF_ADC_Action_Message()函数时的控制流程。在正常情况下,程序从执行PF_CopyDataBytes()函数开始,通过BL指令跳转到该函数的地址0x2b5f0。这个过程涉及到32位指令的处理,尽管Thumb指令通常为16位,但长跳转由两条16位跳转指令组成,通过高五位掩码来确定目标地址。 在程序的异常表中,跳转地址被调整为0x2b5c5,对应于PF_HextoBCDBytes函数。作者详细解释了如何通过机器码(如0xf7d3和0xffab)计算跳转地址,这涉及到将11位地址偏移值(off0和off1)组合并进行适当的调整。例如,正常表的偏移中间量offmid1是0x3e9fab,通过计算变为实际跳转地址0x2b5f0。 对于异常表,计算过程略有不同,offmid1变为0x2c0aa,最终实际跳转地址变为0x2b5c5。文档还提到了程序的调试过程,包括程序汇编调试窗口的观察和烧录bin文件的测试,这些步骤有助于理解和验证BL长跳转指令的正确执行。 总结来说,本资源深入剖析了BL长跳转指令在电能表程序设计中的使用,强调了地址计算和异常处理的重要性,对于理解汇编编程和电能表程序控制逻辑具有很高的参考价值。