经过大量的网络研究之后,我在C++程序中实现了一个小型汇编程序,以便使用cpuid获得CPU的L1高速缓存大小。我的第一个汇编程序错误(GCC内联汇编)
int CPUID_getL1CacheSize() {
int l1CacheSize = -1;
asm ("mov $5, %%eax\n\t" // EAX=80000005h: L1 Cache and TLB Identifiers
"cpuid\n\t"
"mov %%eax, %0" // eax into l1CacheSize
: "=r"(l1CacheSize) // output
: // no input
: "%eax" // clobbered register
);
return l1CacheSize;
}
它使用MinGW(GCC,G ++)在Windows 7 64位上完美工作。接下来,我使用GCC 4.0在我的Mac电脑上尝试了这一点,并且在某处出现了错误,因为我的程序在ComboBox中显示了奇怪的字符串,并且某些信号无法连接(Qt GUI)。
这是我的第一个汇编程序,希望有人能给我一个提示,谢谢!
如果您使用调试器来浏览它,您会看到什么情况? – 2010-06-24 20:49:53
@ user363778:也许你应该不时地接受答案?这是如何做到这一点:http://privat.rejbrand.se/howtoaccept.html – 2010-06-24 21:13:12