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.

[参考译文] TMS320F28062:ADD ACC 计算的意外结果

Guru**** 2534260 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1024540/tms320f28062-the-unexpected-result-of-add-acc-calculation

器件型号:TMS320F28062

您好、专家、  

我的客户面临一个问题、即反汇编代码的计算不正确、他们没有 C 源代码且只有库代码。 他们发现在下面的计算中可能有问题。

添加 ACC@0x22<<15

在运行上述代码之前、ACC 为0、如下所示。 DP 为0x202、因此 上面的0x22对应于地址0x80A2  

通过搜索 地址 0x80A2的值、可以看到该值为0xFA6B、

因此、在理论上、对于计算、  

添加 ACC@0x22<<15

 将为 ACC = ACC + 0xFA6B<<15

由于 ACC 为0、因此 ACC 的结果 应为 0x7D358000。

但是在运行代码后、结果为 0xFD358000、而不是 0x7D358000、如下所示。 这有什么问题吗?

 ,使用的 CCS 是 CCS7.4 μ 编译器是 TI V16.9.6 LTS。  

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

    大家好、很好、

    我现在要讨论这个问题。 当我把类似的东西放在一起时、我会回来、因为没有 C 源

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

    大家好、很好、

    在执行本指令之前,您能否与客户核实 ST0寄存器中 SXM 的值?

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

    您好, 

    在运行这个指令之前、 SXM 的值显示如下:

    运行该 指令后、 SXM 的值显示如下:

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

    感谢您确认这项工作表现出色。 如果设置为、则该值会进行符号扩展。

    请参阅以下文档 https://www.ti.com/lit/ug/spru430f/spru430f.pdf 的第40页

    有一个具有相同指令的示例。 希望这能澄清。