- C/C++ code
int main(int argc, char *argv[]){ int i = 100; unsigned long dbuf[9]={0}; char buf[9]={0}; printf("i == %d \n",i); __asm { mov eax,80000004h cpuid mov dbuf[0],ecx mov dbuf[4],edx } memcpy(buf, dbuf, sizeof(dbuf)); printf("i == %d \n",i); printf("CPUID == %s \n",buf);}
以上是代码。。
编译没有问题。。
运行后的结果是
- C/C++ code
i == 100i == 0CPUID == 2.9GHz
现在汇编语言为啥,读取CPUID的内容的,就会改变原来的值哪??
造成程序所有的值,都发生了改变!!
1.Qt 中应该怎样使用汇编语言 ,怎么嵌入才是正确的
2.Qt 中如何读取CPU的信息。。
------解决方案--------------------
你的 char buf[9]={0}; 这句的数字开小了...
改成 char buf[36]={0}; 就好了!
------解决方案--------------------
你可以理解成c嵌入qt