iOS中的内联asm错误



int x
__asm-__volatile("movl%0,%%sp":"=r"(x):"%sp")
我想将sp存储到x。
错误:


error: unexpected token in operand
    __asm __volatile("movl  %0,  %%sp":"=r"(x)::"%sp");
                     ^
:1:13: note: instantiated into assembly here
        movl  r0,  %sp
                   ^
1 warning and 1 error generated.

我找到了我的解决方案:

asm volatile("mov %0, sp nt":"=r"(x));

适用于这种特定情况的是:

register void* sp __asm__("sp");
__asm__("" : "+r"(sp) :: "memory");

它甚至可以在ARM和x86之间移植。。。

您正在尝试为ARM CPU组装x86程序集。

最新更新