存档

文章标签 ‘汇编’

gcc嵌入汇编Error: unsupported for `mov’ 错误解决方法

2012年11月26日 sigma 没有评论 9,611 views

今天,在64位机器上,用gcc编译一段嵌有汇编代码的程序,发现报:

$ gcc -o a.out test.c
test.c: Assembler messages:
test.c:4: Error: unsupported for `mov'

其中,test.c的内容如下:

#include <stdio.h>
int main(){
	printf("Test\n");
	 __asm__ __volatile__(
	"mov $0xe0000019,%eax;or $0x00000001,%eax;mov %eax,%cr0;"
	);
	return 0;
}

后来查了下,是因为在64位机器上编译32位的汇编码导致的。解决方法就是加个-m32的选项,使gcc使用32位的ABI。

分类: 贝壳 标签: ,

读取设置CPU的频率信息

2011年11月3日 sigma 没有评论 5,756 views

Intel Core 2之后的CPU有两个寄存器和CPU频率相关: IA32_MPERF 以及 IA32_APERF.MPERF 表示CPU支持的最高频率, 而 APERF 表示CPU实际的工作频率.

实际的频率为:freq=(maxfrequency*APERF)/MPERF

读取以及设置的话,可以通过rdmsr以及wrmsr设置。示例: 阅读全文…

分类: 编程相关 标签: , ,

无觅相关文章插件,快速提升流量