Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在为 PowerPC 使用Diab C 编译器 (v5.3.1.0),并且需要将 MSR 复制到函数的局部变量中。Diab 不支持 GCC 风格的 C 表达式扩展,因此 "mfmsr %0\n" : "=r" (msr) 不起作用。简单地引用变量 (mfmsr msr) 也不起作用。该文档在访问 C 变量时大多保持沉默,尽管它确实说内联汇编有利于使用静态变量,但没有给出示例。
有什么建议或例子吗?
盯着文档终于把我带到了 asm 宏。我创建了一个看起来很像 C 函数的汇编器宏并调用它。
__asm INT32U getMSR () { ! "r3" /* Scratch register.*/ mfmsr r3 }
以及我想在哪里获得 MSR:
{ ... msr = getMSR (); ... }