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.
大家好、
我发现我的代码在某个段上很慢、并想用汇编语言编写它、因为我知道如何执行它、它会更快。
重要的是、我找不到任何有关 MSP432上的 ASM 的教程。
我找到了一个有关 MSP430的 ASM 和 C 混用的教程、但它使用不同的处理器架构(RISK)、而这个是 ARM。
我还找到了 ARM 的指令集、并在 CCS 中生成了 asm 文件、以便我能够分析代码。
以下是困扰我的问题:
1) 1)在哪里可以找到有关如何使用内联 ASM 的良好说明? 如何定义内联等的输入和输出?
2) 2)是否有任何人或任何有关混合 asm 和 C 的教程。例如、在 asm 中编写一个函数并从 C 调用它
有人能否花一点时间来做一个示例、然后制作一个添加2个数字的程序、以及一个通过参数获取2个数字并返回结果的 asm 函数?
这样的示例对我来说意味着世界、因为这就是我开始编写自己的函数所需的全部。 我在 ASM 方面有很多经验、但在 C 和 ASM 混合方面没有太多经验。
3) 3)在 CCS 生成的 ASM 中、有一些 A1-A4寄存器、我猜它们是累加器、但为什么我在 ARM Cortex M4的文件中找不到任何内容。 我想我只找到寄存器 r0-R12。
什么是 A1-A4、为什么找不到它们?
非常感谢您的参与。
如 Chris 建议的那样、ARM InfoCenter 页面是 IMHO 的最佳位置、用于提供与内核相关的文档、包括机器指令。
然而、试图击败效率适中的现代编译器的努力大多是徒劳的("野生鹅之路")。 只需打开适当的优化。
只需添加一些注释:
这里有几个很好的 ARM 汇编器参考和教程、只需尝试您最喜欢的搜索引擎即可。
我不熟悉 MSP432的复杂性、但将时间关键型例程迁移到 RAM 可能会有所帮助。 一些供应商的闪存实现速度众所周知很慢(在这里命名 ST ...),因此从 RAM 执行例程可能会加快速度。 如果我记得正确的话、MSP432支持它、但我不确定。 和最大值 48MHz、它可能不会真正起作用。
[引用 user="jasaleja"]我在不同的时区工作(当您睡眠时),当我回家时,您都可以工作。
这是您的猜测。 我也有几个小时不同步。