2

汇编中有没有办法ARM将数组的地址放入寄存器中?

类似的东西

 __asm__("movl %0,%%eax"::"r"(&array1));

AT&T语法X86

我最初尝试的方式

__asm__("LDR R0,%0" :: "m" (&array`)");

你能给我任何建议或指出一个我可以寻找的地方吗?

4

1 回答 1

5

这应该有效:

int a[10];
asm volatile("mov %r0, %[a]" : : [a] "r" (a));

ARM GCC Inline Assembler Cookbook是获得正确语法的非常好的资源。

另请参阅为GCC 文档中的局部变量指定寄存器。您可以直接为变量指定寄存器。

register int *foo asm ("a5");
于 2013-07-03T12:34:05.540 回答