2012-10-23 148 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