我正在用 C++ 为计算器扭动代码,但它使用程序集显示\读取结果,我想将值存储在任何寄存器中,例如(Al)到 C++ 中的变量 int ......我搜索了但我总是找到它用C语言...
问问题
10630 次
3 回答
8
如果您想将值读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");
但那是海湾合作委员会。
于 2013-11-11T13:58:57.493 回答
3
于 2013-11-10T21:04:34.847 回答
2
你的意思是:
int read_register_eax()
{
int ret;
asm { mov [ret],eax }
return ret;
}
于 2013-11-11T11:57:49.407 回答