首页 > 贝壳 > gcc嵌入汇编Error: unsupported for `mov’ 错误解决方法

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

2012年11月26日 sigma 发表评论 阅读评论

今天,在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。

分类: 贝壳 标签: ,

  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.

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