我用C ++扭曲代码用于计算器,但它显示\ read结果与汇编,我想将值存储在任何寄存器中,例如(Al)到C ++中的变量int ...我搜索了但是我总是用C语言找到它......
答案 0 :(得分:4)
如果您想将al
中的值读入int
:
GCC
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");
但那是海湾合作委员会。
答案 1 :(得分:2)
答案 2 :(得分:0)
你的意思是:
int read_register_eax()
{
int ret;
asm { mov [ret],eax }
return ret;
}