请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TMS320F280039C 工具与软件:
你(们)好
客户报告说、他们 在他的代码中使用了两条类似的指令、但反汇编有一点变化、这会影响应用程序:
第一 条指令 为:
![]()
相应的反汇编代码为:

操作是 clean BatLogic。 然后、BatStatus 为其提供新值。 如果 清除此变量后发生 ISR、并且 ISR 使用此值、这将带来程序得到错误结果的风险。
但是对于 第二条指令:
![]()
相应的反汇编代码为:

Ah 将临时存储该值、然后 直接复制到 PVLogic、这样可以避免上述风险。
您能否帮助解释一下为什么会出现这些差异、以及为避免出现第一种情况、在 C 代码中应该注意什么。
谢谢
Joe