使用内联汇编器读取 GPR

问题描述 投票:0回答:1

我正在使用 PowerPC 的 Diab C 编译器 (v5.9.4),我需要将通用寄存器的内容复制到函数的局部变量中。

是否有任何示例说明如何读取 GPR 并将其值移动到 C 中的变量中?

assembly inline-assembly cpu-registers powerpc wind-river-workbench
1个回答
0
投票

您提到的编译器可能是 Clang 或 GCC 的变体。您可以编写内联汇编,如下所示:

// Read from GPR, change the '0' to the GPR you'd want
unsigned long gprv;
asm volatile("mr %0, 0" : "=r"(gprv));

// Writing to GPR
// Thanks Peter Cordes for pointing out clobber list
asm volatile("mr 0, %0" : : "r"(gprv) : "0");
© www.soinside.com 2019 - 2024. All rights reserved.