使用TI代码编写器工作室(适用于ARM)在C代码中进行内联汇编

Moh*_*din 5 assembly arm code-composer

有人可以告诉我,如何使用TI代码编写器工作室(针对ARM)在C代码中执行内联汇编代码?

我搜索并尝试但没有任何效果.

例如,当我尝试这个非常简单的代码时:

asm("push r0\n");
Run Code Online (Sandbox Code Playgroud)

或这个

__asm("push r0\n");
Run Code Online (Sandbox Code Playgroud)

我总是得到:

[E0002]非法助记符指定推r0

1装配错误,无装配警告

我读到的东西说我以前的代码是GCC风格,TI编译器不接受它!那么我该如何执行自己的内联汇编代码呢?

Moh*_*din 7

最后我找到了解决方案!!

主要问题将通过在汇编指令之前添加一个空格或制表符来解决,如下所示:

asm(" MOVS R0, #5\n");
Run Code Online (Sandbox Code Playgroud)

这行不通:

asm("MOVS R0, #5\n");
Run Code Online (Sandbox Code Playgroud)

在推送中,我们必须将寄存器放在大括号 {R0} 中

asm(" PUSH {R0}\n");
Run Code Online (Sandbox Code Playgroud)

希望有帮助。

  • 需要空格,以便汇编程序不会将指令解释为标签。与普通装配文件相同。 (3认同)