#include <stdio.h>
int main()
{
char *p = NULL;
__asm__ __volatile__(
"sub sp, sp, #20\n"
"mov r3, sp\n"
"mov %0, r3\n"
"ldr r0, =string\n"
"mov r1, #0\n"
"loop:\n"
"ldr r2, [r0, r1]\n"
"str r2, [r3, r1]\n"
"add r1, r1, #1\n"
"cmp r2, #0\n"
"bne loop\n"
"b ex\n"
"string:\n"
".asciz \"hello world\\n\"\n"
".align 2\n"
"ex:\n"
: "=r" (p)
:
: "r0", "r1", "r2", "r3", "memory"
);
printf("%s\n", p);
}
代码如上,来个arm汇编高手唤醒我的记忆 解释下p如何指向 hello world的

------解决方案--------------------
LZ是好人
