{
DWORD f0, f1;
asm("pushfl ; "
"pushfl ; "
"popl %0 ; "
"movl %0,%1 ; "
"xorl %2,%1 ; "
"pushl %1 ; "
"popfl ; "
"pushfl ; "
"popl %1 ; "
"popfl"
: "=&r" (f0), "=&r" (f1)
: "ri" (mask));
return ((f0^f1) & mask);
}
bool is_support = has_eflag((DWORD)0x00040000);
哪位大侠能解释一下上面C++语言(gcc环境)中嵌入的汇编语言的意思:has_eflag是函数,下面是调用。在vs2005中这段代码编译不过去,好像这段汇编只是gcc编译器特有的格式?
谢谢!