当前位置: 代码迷 >> 汇编语言 >> 请教C++中编译64位程序的时候能否使用32位内联汇编
  详细解决方案

请教C++中编译64位程序的时候能否使用32位内联汇编

热度:4257   发布时间:2013-02-26 00:00:00.0
请问C++中编译64位程序的时候能否使用32位内联汇编?
请问编译64位程序的时候能否使用32位内联汇编?
我指的是在GCC中出现的内联汇编,并不是问VC,因为
我知道VC编译64位的时候不能用内联。。。
主要是想问,记得在32位程序中是不允许使用AVX指令的,
那反之,在64位程序中能不能使用SSE指令集呢?
谢谢了~

------解决方案--------------------------------------------------------
GCC我不太清楚。
但64位不带内联汇编,应该是视编译器而定的。
intel的编译器就可以在64位中使用内联汇编。
------解决方案--------------------------------------------------------
我记得64位已经将SSE作为常规指令了
------解决方案--------------------------------------------------------
从x64的设计来说,64-bit模式下是可以使用32-bit指令和大部分16-bit指令的(有一部分16-bit指令的编码被重用了,所以不能用,还有一部分涉及段操作的也不能用),但是在long mode下运行的32-bit(兼容模式)代码是不能使用64-bit指令和新寄存器的。
至于编译器能否使用内嵌汇编,要看设计,cl64就彻底不允许任何嵌入汇编,但是icc、gcc是允许的。
  相关解决方案