ARM内联约束

pis*_*tal 2 x86 assembly gcc arm

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

类似的东西

 __asm__("movl %0,%%eax"::"r"(&array1));
Run Code Online (Sandbox Code Playgroud)

AT&T 语法 X86

我最初尝试的方式

__asm__("LDR R0,%0" :: "m" (&array`)");
Run Code Online (Sandbox Code Playgroud)

你可以给我任何建议或指向一个我可以为此寻找的地方.

aus*_*len 5

这应该工作:

int a[10];
asm volatile("mov %r0, %[a]" : : [a] "r" (a));
Run Code Online (Sandbox Code Playgroud)

ARM GCC Inline Assembler Cookbook是一个非常好的资源,可以正确地获得语法.

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

register int *foo asm ("a5");
Run Code Online (Sandbox Code Playgroud)