C - 读取和设置汇编寄存器

标签 c gcc assembly cpu-registers

我需要能够从我的 C 代码访问汇编寄存器。我有一种简单的方法可以将寄存器的值设置为变量的值并将寄存器的值作为变量获取?希望这是有道理的...

最佳答案

如果您使用的是 VC(微软的 C 编译器)

int regVal;
__asm {
  mov [regVal], eax
}

这将加载 eax 保存在 regVal 中的任何内容

如果您使用的是 GCC:

int regVal;
asm("movl %%eax, %0" : "=r"(regVal) :);

希望我没弄错,我实际上并没有在 GCC 中进行内联汇编。

关于C - 读取和设置汇编寄存器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34489874/

相关文章:

C 程序。调用打印字符串的函数

c++ - 如何优化默认的 if-branch

assembly - ARMv8 异常向量和处理

c - OS X - 在 C 中使用内联汇编时架构 i386 的 undefined symbol

c++ - 如何知道析构函数中的堆栈损坏来自何处?

assembly - 哪些 CPU 支持 MOVBE 指令?

c++ - 在应用程序文件夹中为 C/C++ 安装库 "IGRAPH"

c - 为数组中的每个元素选择数组中的随机元素

c++ - 将弱符号和局部符号链接(symbolic link)在一起时,可能的GCC链接器错误导致错误

c++ - 如何在派生类中可移植地初始化继承的模板化 POD 结构?