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.

[参考译文] CCS/TMS320F28069:内联汇编语言问题

Guru**** 2586505 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/882556/ccs-tms320f28069-problem-on-inline-assembly

器件型号:TMS320F28069

工具/软件:Code Composer Studio

您好、

现在假设我们有三个 unsigned int 全局变量、并在类似这样的运行时间内使用映射文件中可用的地址进行访问

但我们在第4行的问题是这个 asm (" MOVL ACC、*XAR6);其中一个内容加载正常、但原始内容在 AH (累加器高电平)器件中可用、因此如何在完全 ACC 中提取 AH 器件 我们不需要 AL (累加器低电平)器件。 我已经尝试过16位移位、但不起作用您能建议我在直列式装配体中进行正确的移位或其他方法吗?

asm (" MOVW DP、#_A");       // 加载页地址
asm (" MOVL ACC、@_A);    // 将值加载到 ACC 中、在中可用
asm (" MOVL XAR6、ACC);
asm (" MOVL ACC、*XAR6);//使用间接寻址模式的可变值

asm (" MOVW DP、#_b);
asm (" MOVL @ b、acc);//传输另一个变量中的值 acc

此致  

亚什·沙阿  

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

    Yash Shah、

    就从装配体角度而言、我相信您可以通过在第4行之后添加以下内容来实现此目的:

    asm (" MOV AL、@AH");
    asm (" MOV AH、#0");

    在 C 编译器用户指南第164页的 C 文件中插入内联汇编代码有一些通用指南、如下所示:

    http://www.ti.com/lit/ug/spru514s/spru514s.pdf

    通常、对于汇编代码的冗长部分、尤其是那些修改 C 变量的部分、编写和调用汇编函数更安全。

    此致、

    Richard

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

    您好、

    我们将使用新的开发少量内联汇编代码行来解决该问题。 另一件事是检查代码是否会干扰我们的 C 或 C++环境?

    此致

    亚什·沙阿

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

    除了用户指南中的一般建议之外、我还不知道任何内容。  请记住、C 优化器不会重新排列内联汇编代码行。

    我忘记提到的一点是、在分配变量地址时要注意依赖.map 文件的偏移量。  随着程序的增长、链接器可能会移动变量以优化存储器使用、因此符号可能并不总是您所期望的位置。

    此致、

    Richard

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

    您好、

    可以、但我们可以使用变量的名称而不是其地址来访问变量。 在命名访问中会产生这种类型的问题?

    此致

    亚什·沙阿

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

    是的、没错。  如果使用符号加载地址、则可以。

    此致、

    Richard

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

    您好、

    感谢您的支持、我们最终可以在运行时访问所有类型的变量。

    此致

    亚什·沙阿