2012-10-23 67 views
1

任何人都可以请解释一下ARM代码的含义是什么?ARM汇编指令的含义

__asm__ __volatile__("mov %0, pc \n":"=r"(val)::"memory") 

我认为它存储在变量VAL程序计数器的值。我对么?

回答

3

没错,它将程序计数器放入val

=r表示它是输出只写变量。 "memory"告诉编译器不要缓存内联程序集中的值。我不是100%确定为什么"memory"已被用于此处。

+0

好的。谢谢! –

+1

内存用于告诉gcc不要缓存值并将它们重新加载到内联asm指令后的寄存器中http://www.ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html#ss5.3 – iabdalkader