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

Sar*_*rah 4 c++ assembly inline-assembly

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

小智 7

如果要将值读alint

海湾合作委员会:

unsigned char out;
asm volatile("movb %%al, %[Var]" : [Var] "=r" (out));
Run Code Online (Sandbox Code Playgroud)

或者

unsigned char out;
asm volatile("movb %%al, %0" : "=r" (out));
Run Code Online (Sandbox Code Playgroud)

对于 MSVC:

unsigned char c;
__asm movb c, al
Run Code Online (Sandbox Code Playgroud)

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

编辑

您可能还想要:

register unsigned char out asm("%al");
Run Code Online (Sandbox Code Playgroud)

但那是海湾合作委员会。