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