assembly arm - 我如何读回寄存器值并将其存储在普通的 c 变量中
assembly arm - how do I read back a register value and store that in a plain c variable
我需要将寄存器 (r9) 读入变量。
我有这个
pxTopOfStack[9-4] = 0x20000000; // Set the task's initial R9 value
0x20000000 存储在 R9 中。
如何在 arm 程序集中内联它?我可以在汇编中设置 r9 如下:
__asm volatile ("LDR r9, = 0x20000000");
但是我如何在内联汇编中设置普通 C 变量?
伪代码
__asm volatile ("MOV pxTopOfStack[9-4], R9"); // just trying to illustrate what I am looking for
复制粘贴了 developer.arm 中的示例并对其进行了修改。似乎有效!
__asm ("MOV %[result], R9"
: [result] "=r" (pxTopOfStack[9-4])
);
我需要将寄存器 (r9) 读入变量。
我有这个
pxTopOfStack[9-4] = 0x20000000; // Set the task's initial R9 value
0x20000000 存储在 R9 中。
如何在 arm 程序集中内联它?我可以在汇编中设置 r9 如下:
__asm volatile ("LDR r9, = 0x20000000");
但是我如何在内联汇编中设置普通 C 变量?
伪代码
__asm volatile ("MOV pxTopOfStack[9-4], R9"); // just trying to illustrate what I am looking for
复制粘贴了 developer.arm 中的示例并对其进行了修改。似乎有效!
__asm ("MOV %[result], R9"
: [result] "=r" (pxTopOfStack[9-4])
);