XSetgv 在我的裸机软件中崩溃

XSetgv crashes in my bare metal software

我正在开发裸机程序。该平台是 x86,32 位,保护模式,我在环 0。我想通过使用 xsetgv 指令启用 AVX。 CR4 的第 18 位是 1,如果我使用 xgetgv 那么没有任何错误发生,但是 xsetgv 崩溃(virtualbox 报告致命错误)。有问题的代码如下:

mov ecx, 0
mov eax, 0x7
mov edx, 0
xsetbv

有什么问题?

问题出在有问题的虚拟盒子上,我的代码在真实硬件和最新的虚拟盒子上工作得很好。