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/TMS320F28032:汇编符号

Guru**** 2607995 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/682233/ccs-tms320f28032-assembly-symbols

器件型号:TMS320F28032

工具/软件:Code Composer Studio

您好、

汇编语言中的符号(@、#、*)是什么意思?

如何处理 C28x 汇编中的指针和值?

示例:

SETC
SXM;打开符号扩展模式
MOV ACC、@Vara <<#10;在 Vara 向左移10的情况下加载 ACC
添加 ACC、@VarB <<#6;添加 VarB 向左移6位到 ACC

MOVL
XAR1、#Vara;使用 Vara 地址初始化 XAR1指针
MOVL XAR2、* XAR1;载入包含 Vara 内容的 XAR2
ADDB XAR2、#10h;XAR2 = Vara + 0x10
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好:4997907、

    请参阅此处的 CPU 指令集指南:
    www.ti.com/.../spru430f.pdf

    并搜索"寻址模式"
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    因此、实质上:

    @=基准
    #=基准

    如果我们将符号与 C 进行比较、会怎么样?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好'7907、

    我认为这并不是那么简单。  

    通常、#是立即数、@是参考数

    例如、第一个寻址模式(直接):

    第一个#Vara 实际上只是将一个常量移入 DP、因为汇编器知道 Vara 在汇编时所在的数据页。

    然后、μ@Vara 将一些已知偏移从 DP 基址编码到指令中、并直接根据该偏移获取 Vara 的值。

    在本例中、#和@协同工作以直接读取 Vara。

    间接寻址模式 wtih "*"更类似于指针解引用。   

    我只需仔细阅读并理解所有模式、还可以仔细查看您希望使用的每条指令的可能寻址模式+文档。   

    此外、使用汇编语言的任何特定原因?  即使对于性能关键型应用、我们也建议首先使用 C 语言、然后调高优化级别、最后仅针对最关键的内部环路采用手动调优的汇编语言、仅在必要时使用。  编译器非常好、了解从硬件获得良好性能的所有技巧;它通常会打败手动汇编、除非您真的愿意深入了解 CPU ISA 和流水线。   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这是有道理的、但是否有任何文档介绍了符号以及如何使用这些符号移动数据? 我知道他们在整个文档中"洒满"了示例、但我找不到一个专用于所用符号的部分。 我得到了从根本上正在发生的事情、但我想确定符号代表的含义、或者对每个符号的使用方法有一种理想的理解。 我们有一个在 C28x 汇编语言中编写的现有代码库、我们必须对其进行修改。 代码中没有注释、因此我尝试重构代码的功能、以在 C 语言中重新编写代码或保持原样、并将新功能附加到源代码中。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好'7907、

    当然,没有评论:(

    遗憾的是、我认为我们没有比指令集参考更好的东西。 您可能还会发现汇编器指南很有用:(www.ti.com/.../spru513p.pdf)

    佛罗里达大学教授使用 F28335的 DSP/微控制器、部分采用汇编语言。 他们的课程页面上可能有一些有用的资源:
    www.add.ece.ufl.edu/.../
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您还可以在传统的 F2812 3天专题讨论会中找到附录 B 和 C。  当时 PPT 和学员指南中有一些汇编编码模块。  此 Wiki 网站上提供了研讨会材料:

    processors.wiki.ti.com/.../C2000_Archived_Workshops

    此致、

    Richard

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

    该 URL 已被论坛工具破坏。  只需转到此链接并向下滚动到 F2812多日技术讲座:

    http://processors.wiki.ti.com/index.php/C2000_Archived_Workshops

    此致、

    Richard

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您提供的丰富选择! 我看了其中的几个、然后用谷歌搜索了自己。 以下链接对我帮助很大(它不完全像 C28x 汇编语言、但它确实很好地理解了汇编的概念)

    www.google.com/url

    通过使用那里的基本理念、我能够通过使用 TI 提供的指令集来提取汇编所做的工作。

    谢谢!