在ARM
程序集中是否有办法将数组的地址放入寄存器?
类似于
的东西 __asm__("movl %0,%%eax"::"r"(&array1));
AT&T
的 X86
语法
我最初attempt时的方式
__asm__("LDR R0,%0" :: "m" (&array`)");
你能否给我任何建议或指向我可以为此寻找的地方。
答案 0 :(得分:5)
这应该有效:
int a[10];
asm volatile("mov %r0, %[a]" : : [a] "r" (a));
ARM GCC Inline Assembler Cookbook是获得正确语法的非常好的资源。
另请参阅GCC文档中的Specifying Registers for Local Variables。您可以直接为变量指定寄存器。
register int *foo asm ("a5");