我使用支持 AVX 和 AVX2 的晚期 i7 处理器,而据说 VirtualBox 支持 AVX 和 AVX2,既然如此,为什么以下代码会卡顿?
vmovdqa ymm0, qqword[testmem]
testmem在其他地方已经定义为
align 32
testmem: rb 128
如果我使用
movdqa xmm0, dqword[testmem]
它运行良好。
FASM 1.72,Windows 10,i7-7700hq,VirtualBox 5.2.6
编辑: 这是一个UEFI应用程序(显然在64位模式下运行),除非出现上述指令,否则它可以正常工作。
编辑
尝试添加
mov rcx, 0
xgetbv
or rax, 0007h
xsetbv
代码开头插入该行,但并没有起到帮助作用。
XCR0
寄存器,因为如果_XCR0[2:1]!= 11b或CR4.OSXSAVE [位18]= 0_,它将引发#UD
异常。 - Jestermovdqa
将无法工作。我尝试启用了AVX(请参见上面的编辑),但仍然无法工作。 - poby