【发布时间】:2011-06-17 07:15:55
【问题描述】:
是否可以使用 Visual Studio 2010 内联汇编器中的新 SSE 寄存器?如果是这样,还必须满足什么条件和其他条件?例如,我不知道新寄存器是否在 x86 和 x64 模式下都可用。
【问题讨论】:
标签: assembly x86-64 sse cpu-registers
是否可以使用 Visual Studio 2010 内联汇编器中的新 SSE 寄存器?如果是这样,还必须满足什么条件和其他条件?例如,我不知道新寄存器是否在 x86 和 x64 模式下都可用。
【问题讨论】:
标签: assembly x86-64 sse cpu-registers
在 Visual Studio 中为 x64 平台编译时不允许内联汇编(自 VS 2005 起)。
我建议您使用intrinsics instead。它使编译器为您处理 CPU 寄存器,并进行一些指令重新排序(优化器开始处理代码,内联汇编绝不会出现这种情况)。
【讨论】:
关于你的第二个问题:
例如,我不知道是否是新的 寄存器在 x86 中都可用 和 x64 模式。
“新”寄存器xmm8 - xmm15仅在 64 位模式下可用。
但请注意,新 AVX 寄存器的情况(对于支持 AVX 的 CPU 和操作系统,例如 Sandy Bridge CPU + Win7 SP1):
ymm0 - ymm7 可用于 32 位和 64 位模式。
ymm8 - ymm15 仅在 64 位模式下可用。
【讨论】: