This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320F280039C:在相似指令上有拆卸差异的原因

Guru**** 2482105 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1456138/tms320f280039c-reasons-for-disassembly-differences-on-the-similar-instruction

器件型号:TMS320F280039C

工具与软件:

你(们)好

客户报告说、他们 在他的代码中使用了两条类似的指令、但反汇编有一点变化、这会影响应用程序:  

第一 条指令 为:

相应的反汇编代码为:

操作是 clean  BatLogic。 然后、BatStatus 为其提供新值。  如果  清除此变量后发生 ISR、并且 ISR 使用此值、这将带来程序得到错误结果的风险。

但是对于 第二条指令:

相应的反汇编代码为:

Ah 将临时存储该值、然后 直接复制到 PVLogic、这样可以避免上述风险。

您能否帮助解释一下为什么会出现这些差异、以及为避免出现第一种情况、在 C 代码中应该注意什么。

谢谢

Joe

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我已将该线程提请编译器团队的注意。 请注意,由于节假日,在新年开始之前可能无法收到回复。

    谢谢

    Ki

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你所说的指令更准确地称为 C 语句。  我认为这两个 C 语句出现在同一个函数中。  有关包含此函数的源文件、 请按照 如何提交编译器测试用例一文中的说明进行操作

    谢谢。此致、

    -George.