1
任何人都可以请解释一下ARM代码的含义是什么?ARM汇编指令的含义
__asm__ __volatile__("mov %0, pc \n":"=r"(val)::"memory")
我认为它存储在变量VAL程序计数器的值。我对么?
任何人都可以请解释一下ARM代码的含义是什么?ARM汇编指令的含义
__asm__ __volatile__("mov %0, pc \n":"=r"(val)::"memory")
我认为它存储在变量VAL程序计数器的值。我对么?
没错,它将程序计数器放入val
。
=r
表示它是输出只写变量。 "memory"
告诉编译器不要缓存内联程序集中的值。我不是100%确定为什么"memory"
已被用于此处。
好的。谢谢! –
内存用于告诉gcc不要缓存值并将它们重新加载到内联asm指令后的寄存器中http://www.ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html#ss5.3 – iabdalkader