我正在使用RPI2上的内联汇编(ARM arch),我正在使用GCC作为我的编译器。 我想编译并运行以下部分代码,但我发现错误,如果有人可以帮助我或给我任何帮助来解决问题,请。 以下是我需要帮助的代码部分:
int main(void)
{
int a;
asm("PUSH {r0}");
asm("PUSH {r1}");
asm("LDR r0, =a");
asm("MOV r1, sp");
asm("STR r1, [r0]");
asm("POP {r1}");
asm("POP {r0}");
}
我所犯的错误是关于LDR指令。我试图删除'='或代替LDR命令来使用MOV,但仍然无法正常工作。
答案 0 :(得分:0)
要访问特定寄存器,可以使用asm寄存器变量,例如:
register int sp asm("sp");
__asm__ __volatile__("" : "=r" (sp));