工具/软件:Code Composer Studio
您好、
汇编语言中的符号(@、#、*)是什么意思?
如何处理 C28x 汇编中的指针和值?
示例:
MOVL
XAR1、#Vara;使用 Vara 地址初始化 XAR1指针
MOVL XAR2、* XAR1;载入包含 Vara 内容的 XAR2
ADDB XAR2、#10h;XAR2 = Vara + 0x10
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.
工具/软件:Code Composer Studio
您好、
汇编语言中的符号(@、#、*)是什么意思?
如何处理 C28x 汇编中的指针和值?
示例:
您好'7907、
我认为这并不是那么简单。
通常、#是立即数、@是参考数
例如、第一个寻址模式(直接):
第一个#Vara 实际上只是将一个常量移入 DP、因为汇编器知道 Vara 在汇编时所在的数据页。
然后、μ@Vara 将一些已知偏移从 DP 基址编码到指令中、并直接根据该偏移获取 Vara 的值。
在本例中、#和@协同工作以直接读取 Vara。
间接寻址模式 wtih "*"更类似于指针解引用。
我只需仔细阅读并理解所有模式、还可以仔细查看您希望使用的每条指令的可能寻址模式+文档。
此外、使用汇编语言的任何特定原因? 即使对于性能关键型应用、我们也建议首先使用 C 语言、然后调高优化级别、最后仅针对最关键的内部环路采用手动调优的汇编语言、仅在必要时使用。 编译器非常好、了解从硬件获得良好性能的所有技巧;它通常会打败手动汇编、除非您真的愿意深入了解 CPU ISA 和流水线。
您还可以在传统的 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