c++ - 我如何使用 C++ 从寄存器中读取值

标签 c++ assembly inline-assembly

我正在用 C++ 编写计算器代码,但它显示\读取结果与程序集,我想将值存储在任何寄存器中,例如( Al )到 C++ 中的变量 int ...我搜索了,但我总是用C语言找...

最佳答案

如果您想将 al 中的值读入 int:

海湾合作委员会:

unsigned char out;
asm volatile("movb %%al, %[Var]" : [Var] "=r" (out));

或者

unsigned char out;
asm volatile("movb %%al, %0" : "=r" (out));

对于 MSVC:

unsigned char c;
__asm movb c, al

没有官方的 C++ 方式,它源于 C。

编辑

您可能还想要:

register unsigned char out asm("%al");

但那是 GCC。

关于c++ - 我如何使用 C++ 从寄存器中读取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19895038/

相关文章:

c# - 使用 ADPlus 调试消失的 .NET 应用程序,获取 CONTRL_C_OR_Debug_Break 异常

c++ - 混淆 C++ 中的变量和函数名称以防止基本逆向工程

assembly - 优化 x86 CPU 上的隔离内存存储

visual-c++ - 内联汇编的初学者问题

c++ - 应用程序认为它在我的主文件夹中 OSX

c++ - 打印一行二维字符数组 (C++)

c - 我怎样才能组装这个程序

c++ - 内联 assembly 约束修饰符 = 和 +

assembly - FLAGS/EFLAGS 是 clobber 列表的 "CC"(条件控制)的一部分吗?

c++ - 字符串未使用 <openssl/aes> 正确解密